.NET中的FileUpload不保存图像

时间:2009-09-03 14:21:08

标签: .net asp.net file-upload

这是我的代码

Dim amPhotoPath As String = "\graphics\Profiles\" & ViewState("fileName")
personalPhotoUpload.SaveAs(Server.MapPath("~") & amPhotoPath)

由于某种原因图像没有保存..如果我调试代码,并在Quickwatch中获取URL,文件夹打开,所以路径是正确的,但它只是不保存!我刚刚设置了权限,因为我认为是因为这个,但无济于事!我不知道这里出了什么问题,我错过了什么?

谢谢你们

3 个答案:

答案 0 :(得分:1)

结帐msdn example。您需要使用FileUpload控件属性来检查FileUpload控件是否有文件,然后使用PostedFile属性来获取文件名。

答案 1 :(得分:0)

试试这个:

Dim amPhotoPath As String = Path.Combine(Server.MapPath("/graphics/Profiles"), ViewState("filename"))
personalPhotoUpload.SaveAs(amPhotoPath)

我不确定你的视图状态是什么,但至少为什么在调试时更容易验证你的路径。

答案 2 :(得分:0)

您是否验证了personalPhotoUpload.C​​ontentLength()> 0?

如果不是,那就是你的问题。如果您的文件字节为零,则表示没有上传的文件。

摘自this文档页面:

  

FileUpload控件没有   自动从中读取文件   客户。你必须明确提供一个   控制或机制允许用户   提交指定的文件。对于   例如,您可以提供一个按钮   用户可以单击上传文件。   您编写的用于保存的代码   指定的文件可以调用   FileBytes属性,返回   文件的内容。

     

在调用FileBytes属性之前,   你应该使用HasFile属性   验证FileUpload控件   包含要上传的文件。如果   HasFile返回true,调用   FileBytes属性。如果它返回   false,向用户显示消息   表明控件没有   包含一个文件。如果你不提供   错误处理代码验证a   文件存在,尝试保存   不存在的文件抛出   HttpException异常。