我很难相信没有办法在 MVC3 中获取上传到服务器的文件的完整路径(我已经读过这是出于安全目的)。
有解决办法吗?我正在编写一个小应用程序,用户将在其中上传文件,在屏幕上对其进行编辑,然后将其保存回原始位置。有没有人有这样做的好方法?我必须使用其他东西HttpPostedFileBase
吗?
我很难相信没有办法在 MVC3 中获取上传到服务器的文件的完整路径(我已经读过这是出于安全目的)。
有解决办法吗?我正在编写一个小应用程序,用户将在其中上传文件,在屏幕上对其进行编辑,然后将其保存回原始位置。有没有人有这样做的好方法?我必须使用其他东西HttpPostedFileBase
吗?
不可能。Web 服务器只能知道用户的 Web 浏览器愿意告诉它多少关于文件的信息,并且任何当前的浏览器除了文件内容之外只会给出原始文件名。客户端 PC 上的文件路径永远不会发送到服务器。作为安全预防措施,使用客户端 Javascript 获取此信息似乎也是不可能的。
此外,Web 服务器无法控制(重新)下载的文件将保存在用户 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)
{
}
希望此解决方案对您有所帮助。