在.net上FTP上传 - 在某些浏览器中没有获得正确的文件路径

时间:2012-01-21 16:01:50

标签: c# .net upload ftp

我正在构建一个应用程序,其中包括将一些字段写入数据库,以及将最终用户的一些文件上载到FTP站点。在IE中,文件上传工作正常。在Firefox和Chrome中,我收到一个错误,它无法找到该文件(此时在localhost中运行它,还没有将它移到开发或生产环境中)。

我试过通过以下方式获取文件:

Server.MapPath(FileUpload1.PostedFile.Filename) 

...指向应用程序所在的文件夹。

还有:

Path.GetFullPath(FileUpload1.PostedFile.Filename) 

...指向c://程序(x86)/ ...... ...

如果我从任一文件夹中获取文件,我可以正常上传文件,但其他地方都没有。

有关如何将这一点指向正确位置的任何想法?或者,一旦它驻留在服务器环境中,它是否真的可以正常工作?

提前致谢!

2 个答案:

答案 0 :(得分:0)

FileUpload.PostedFile.Filename在每个浏览器中的工作方式不同。在Firefox和Chrome中,它不会包含完整路径 - 只是文件名。这取决于您客户的浏览器。

答案 1 :(得分:0)

FileUpload.PostedFile.FileName

这实际上为您提供了上传文件的路径。

但是在所有较新的浏览器(FF 3.6系列,Chrome,IE7 +)中,由于安全原因,此功能已被禁用。任何网站都不需要存储在客户端系统中的文件路径,因为这会提供目录结构,并可能向网站所有者公开其他重要的事情。

因此,在您的情况下,上面的代码只返回文件名。

您可以查看此链接,它可能会对您有所帮助Fileupload control - fullpath issue