如何将完整文件路径从客户端传递到 MVC 控制器
本文关键字:客户端 控制器 MVC 路径 文件 | 更新日期: 2023-09-27 18:35:45
我需要将选定的文件路径传递给控制器。这是我表格的一部分:
<input type="file" name="sourceFile" />
<input type="submit" name="Submit" id="Submit" value="Upload" />
这是我的操作方法:
[HttpPost]
public ActionResult MyActionMethod(System.Web.HttpPostedFileBase sourceFile)
{
string path = Path.GetFullPath(sourceFile.FileName);
...
return View();
}
但是我得到的不是真正的道路,而是C:'Program Files (x86)'IIS Express'myFile.csv
.但是该文件不存在。我所需要做的就是将文件从一个位置复制到另一个位置。
>sourceFile
上传文件后,它会在服务器上包含该文件。您需要调用 sourceFile.SaveAs
将文件保存到您指定的服务器上的路径。
服务器没有充分的理由知道文件在客户端文件系统上的存储位置。应用程序应该关心的只是上传后的实际文件。
该文件路径实际上并不存在。你之所以这么认为,是因为你不明白Path.GetFullPath
是做什么的。对于相对路径,它将添加当前工作目录。就这样。它并没有真正将其保存在某个地方或检查它是否存在。
实际的文件路径是您创建的内容。您可以使用客户端提供的文件路径作为开始,但您必须在服务器上创建一个位置以将其保存在那里。您可以使用在HttpPostedFileBase
中传递的数据并将其保存在某个位置。
另请参阅我对远程服务器中文件的完整路径问题的回答,其中涵盖了您问题的其他一些方面。