我很难相信没有办法获取正在上传到MVC3服务器的文件的完整路径(我读过这是出于安全目的) 。在MVC 3中获取上传文件的文件路径
有没有解决办法?我正在编写一个小应用程序,用户将在其中上传文件,在屏幕上对其进行编辑,然后将其保存回原始位置。有没有人有这样做的好方法?我必须使用HttpPostedFileBase
以外的东西吗?
我很难相信没有办法获取正在上传到MVC3服务器的文件的完整路径(我读过这是出于安全目的) 。在MVC 3中获取上传文件的文件路径
有没有解决办法?我正在编写一个小应用程序,用户将在其中上传文件,在屏幕上对其进行编辑,然后将其保存回原始位置。有没有人有这样做的好方法?我必须使用HttpPostedFileBase
以外的东西吗?
不可能。 Web服务器只能知道用户的Web浏览器愿意告诉它的文件,并且除了文件内容外,任何当前浏览器只会提供原始文件名。客户端PC上的文件路径永远不会发送到服务器。作为安全防范措施,似乎也不可能通过客户端Javascript获取此信息。
此外,网络服务器将无法控制,其中在用户的PC上将(保存)(重新)下载的文件,因此具有该路径信息无论如何都没有什么用处。
获取文件名和路径,你可以这样做::
foreach (string filesData in Request.Files)
{
var fileNm = Request.Files[filesData].FileName;
HttpPostedFileBase hpf = Request.Files[filesData] as HttpPostedFileBase;
string filePath = Path.Combine(HttpContext.Server.MapPath("~//Your Folder Path//"));
hpf.SaveAs(filePath + fileNm);
}
希望这将帮助你..
不可能的,没有办法与客户端文件进行播放。首先,您需要在服务器上上传文件,并从那里对其执行操作,然后再保存在客户端计算机上。
@using (Html.BeginForm("EditImage", "Home", FormMethod.Post, new { enctype = "multipart/form- data" }))
{
}
和控制器,你可以有你的操作方法是这样的:
[HttpPost]
public ActionResult EditImage(AddNewProductModel model, HttpPostedFileBase file)
{
}
希望这个解决方案将帮助你。
如在用户PC上的原始位置?是啊......你不会那么做。而且,将其下载回原始位置将会非常棘手,因为大多数浏览器不会再询问保存文件的位置。 除非您的意思是文件最终保存到服务器上的“完整路径” – KingCronus 2013-04-30 14:11:45