FileUpload控件不保存文件

时间:2013-11-28 03:14:31

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

我正在尝试上传文件而无法让它工作。我有网站和子文件夹的正确网址。我也尝试了fileUploader.FileNamefileUploader.SaveAs。似乎没有工作。它不在UpdatePanel中。有什么想法吗?

代码背后:

Protected Sub uploader_click(sender As Object, e As EventArgs) Handles btnUpload.Click
 If fileUploader.HasFile Then
    Dim _path As String = Path.Combine("{path to site and folder}", Server.HtmlEncode(fileUploader.PostedFile.FileName))
    Try
      fileUploader.PostedFile.SaveAs(_path)
    Catch ex As Exception
      Response.Write(ex.ToString)
    End Try
 Else
  Response.Write("No File")
 End If
End Sub 

新代码,我需要获取父文件夹来公开子文件夹:

  Dim filePath = Path.GetFileName(fileUploader.PostedFile.FileName)
  Dim _path As String = Path.Combine(Server.MapPath("~"), "subfolder", filePath)

_path = \\{server blah}\{site}\webroot

现在没有错误,但没有上传文件???

3 个答案:

答案 0 :(得分:0)

如果您在托管服务提供商上,则必须设置文件权限。如果您使用共享主机,那么可以选择执行此操作。如果您有权访问IIS,那么您可以自己动手。

答案 1 :(得分:0)

像这样修改你的第三行

Dim _path As String = Path.Combine(Server.MapPath("{Relative url of your folder within your project}"), Server.HtmlEncode(fileUploader.PostedFile.FileName))

相对URL应该是这样的:

"~/folder/Folder2//"  

答案 2 :(得分:0)

它终于奏效了,必须在发布和使用新文件之间延迟 - 基于云。这条道路正如预期的那样运作。

If fileUploader.HasFile Then
  Dim filePath = Path.GetFileName(fileUploader.PostedFile.FileName)
  Dim _path As String = Path.Combine(Directory.GetParent(Server.MapPath("~")).FullName, "subfolder", filePath)
  Try
    fileUploader.PostedFile.SaveAs(_path)
  Catch ex As Exception
    lb.Text = ex.Message
  End Try
Else
  lb.Text = "No File!"
End If

感谢大家的帮助。