【问题标题】:vb.net upload file problemvb.net上传文件问题
【发布时间】:2009-08-28 12:05:31
【问题描述】:

当我尝试发布文件时,它返回错误,即没有附加文件。有人能看出这有什么问题吗?或者是什么原因造成的。

<form id="Form1" enctype="multipart/form-data" method="post" runat="server">
    <asp:FileUpload ID="fileUpload" runat="server" />
    <asp:Button ID="cmdSubmitApplication" runat="server" Text="Button" />
</form>

Protected Sub cmdSubmitApplication_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSubmitApplication.Click

    If Me.fileUpload.PostedFile Is Nothing Then
        Response.Write("You must specify file to upload!")
    Else

        Try

            Dim strExt As String = Path.GetExtension(Me.fileUpload.PostedFile.FileName)

            If strExt.ToLower() = ".doc" Then

                Dim savedFile As String
                savedFile = Path.GetFileName(Me.fileUpload.PostedFile.FileName)
                Me.fileUpload.PostedFile.SaveAs(Server.MapPath("cvs\") & savedFile)
                Response.Write("File Uploaded Successfully")

            Else
                Response.Write("Only Image Files are Allowed")
            End If

        Catch exp As Exception
            Response.Write(exp.Message)
        End Try

    End If

End Sub

【问题讨论】:

  • 它一直告诉我“您必须指定要上传的文件!”
  • 澄清一下,这是 ASP.NET 2.0?
  • 您是否在 web.config 中指定了上传大小上限?

标签: asp.net vb.net file-upload


【解决方案1】:

尝试使用:

If Me.fileUpload.HasFile Then        
    Response.Write("You must specify file to upload!") 
Else

【讨论】:

    【解决方案2】:

    这是来自 MSDN 的完整工作示例:

    http://msdn.microsoft.com/en-us/kb/kb00323245.aspx

    请看一下。

    还可以尝试将“If Me.fileUpload.PostedFile Is Nothing Then”替换为“If fileUpload.PostedFile Is Nothing Then”

    并检查目标文件夹的权限

    【讨论】:

    • 权限没问题。进行了更改,该 msdn 教程也不起作用。此外,当他们在同一代码块中有
    【解决方案3】:

    尝试从表单标签中删除 enctype="multipart/form-data"。我正在查看我使用上传的页面,但他们没有。

    我在母版页中有表单标签,但它只是:

    【讨论】:

    • 那没有做到。我几乎可以肯定这是必需的。无论哪种方式,都没有这样做。嗯
    • 修复了它。 master中有一个
      标签,所以我在下面添加的表单是嵌套的。我从主人那里删除了表单标签。那会不会在其他地方引起问题。我应该只删除上面的表单标签而不是主标签吗?
    【解决方案4】:
        Public Sub UploadFile(ByVal BugID As System.Guid, ByVal Files As System.Web.UI.WebControls.FileUpload, ByVal fileDescription As String)
            Dim guid As System.Guid = System.Guid.NewGuid()
            Dim filesSave As New BugTrackerData.Files.Files()
            Dim filename As String = Files.PostedFile.FileName
            'Grab the file name from its fully qualified path at client 
            Dim strFileName As String = guid.ToString() & System.IO.Path.GetExtension(filename)
            'Save uploaded file to server at C:\ServerFolder\
            Dim savepath As String = System.Web.HttpContext.Current.Server.MapPath("~/Resources/FileUploads/" & strFileName)
            Try
               If Not String.IsNullOrEmpty(FileUpload1.FileName) Then
     Files.PostedFile.SaveAs(savepath)
                filesSave.SaveToDB(guid, BugID, strFileName, fileDescription)
    End If
            Catch Exp As Exception
                Throw Exp
            End Try
        End Sub
    

    【讨论】:

      【解决方案5】:

      修复它。 master中有一个标签,所以我在下面添加的表单是嵌套的。我从主人那里删除了表单标签。那会不会在其他地方引起问题。我应该只删除上面的表单标签而不是主标签吗?

      ps 我讨厌 vb.net 及其相关的一切。

      【讨论】:

      • 是的,只要在母版页中有表单标签。
      • ASP.net 需要在每个页面中都有一个表单来发挥作用。只需将表单保留在母版页中,然后删除子表单即可。
      • 顺便说一句,这不是 VB.net 的东西,它是 ASP.net
      猜你喜欢
      • 2010-10-17
      • 1970-01-01
      • 2010-09-17
      相关资源
      最近更新 更多