我正在使用fileupload控件来获取文件的路径.. 但它给了我一些“C:”路径而不是文件的真实路径..
如何获取上传文件的真实路径。
我正在使用:
Path.GetFullPath(FileUpload1.FileName)
获取文件路径..
但我的路径是:
"C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\+filename"
答案 0 :(得分:4)
这是不可能的,因为这会带来安全风险。
我不清楚你 获取的路径是什么,因为你应该只获取文件名 - 你应该提供保存文件的路径。
编辑:
您正在获取文件的完整路径 - 这不应该发生,并且在使用大多数浏览器时不会发生。但是,IE确实提供了完整的路径,即使它是一个安全漏洞。
编辑2:
您正在使用Path.GetFullPath
并且仅提供文件名。发生这种情况时,当前目录路径将被添加到文件名中。这将是您的代码默认运行的目录。
来自MSDN:
不需要存在path指定的文件或目录。例如,如果c:\ temp \ newdir是当前目录,则在文件名(如test.txt)上调用GetFullPath将返回c:\ temp \ newdir \ test.txt。该文件不需要存在。
答案 1 :(得分:1)
了解您在服务器上收到的内容不是文件系统中的“文件”。您收到的是网络请求。它包含从文件填充的标头和数据,您可能会将其保存到服务器上的文件系统中。但是当它作为Web请求出现时,它不是文件系统的一部分,也没有“路径”可以说。
客户端必须发送“路径”作为请求标头的一部分,不会不应该发生。