我需要将选定的文件路径传递给控制器。这是我表格的一部分:
<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
。
但那里的文件不存在。我只需要将文件从一个位置复制到另一个位置。
答案 0 :(得分:2)
sourceFile
包含您服务器上的文件。您需要调用sourceFile.SaveAs
将文件保存到您指定的服务器上的路径。
服务器没有充分理由知道文件存储在客户端文件系统中的哪个位置。所有应用程序应该关注的是上传后的实际文件。
答案 1 :(得分:0)
该文件路径实际上并不存在。您认为这是因为您不了解Path.GetFullPath
的作用。对于相对路径,它会添加当前工作目录。这就是全部。它并没有真正将它保存在某处或检查它是否存在。
您创建的实际文件路径。您可以使用客户端提供的文件路径作为开头,但您必须在服务器上创建一个位置以将其保存在那里。您使用HttpPostedFileBase
中传递的数据并将其保存在某处。
另请参阅我对Full path of the file from the remote server问题的回答,该问题涵盖了您问题的其他方面。