我上传一个文件使用一个简单的文件上传控制命名的 theFile (ASP.NET).我试图获得绝对路径的文件,但是 thefile.PostedFile.FileNamethefile.FileName 是的完全相同,只是文件的名称,没有通路!我不能使用服务器。MapPath因为我将要拯救这个文件在不同的服务器(转让通过字数组通过一个服务).

它打破在这一行:

Dim fStream As New FileStream(thefile.FileName, FileMode.Open, FileAccess.Read)

因为这是把该文件和映射它的相对路径我VS!我需要绝对的道路...

有帮助吗?

解决方案

通过HTTP上传永远不会包含远程(客户端)的计算机上的完整路径的文件 - 它可能放弃他们的目录结构的信息,因此被认为是安全风险。此外,它会是什么用呢?如果有人上传你在互联网上的文件时,为什么你试图打开本地(asp.net服务器)上的FILESTREAM机,他们的机器上存在的路径?

上传文件实际上为作为请求的一部分的字节流来通过。您需要访问 FileBytes 控件的属性来获取文件,或致电另存为()方法将其保存到服务器。在你的情况,你很可能只是得到字节并把他们关到Web服务调用您需要。

其他提示

(转移通过字数组通过一个服务).

由于你目前需要的文件的字数组,为什么不能访问该文件的字数组通过文件.FileBytes的财产?

这里是参照FileBytes财产的文件上传网络控制: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filebytes.aspx

如果你想访问的对象的流直接,可以利用的FileContent财产。这里是参照FileContent财产的文件上传网络控制: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.filecontent.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top