正在从HttpPostedFileBase获取文件路径
本文关键字:文件 路径 获取 HttpPostedFileBase | 更新日期: 2023-09-27 18:25:11
我正在使用ASP.NET MVC 4,我正在尝试获取上传文件的路径,以便打开和操作它
控制器
public ActionResult Bulk(HttpPostedFileBase file)
{
FileStream fs = System.IO.File.Open(Server.MapPath(file.FileName),
FileMode.Open, FileAccess.Read);
return RedirectToAction("Index");
}
查看
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm("Bulk", "Bulk", null, FormMethod.Post, new
{ enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<fieldset>
<p>
<input type="file" name="file"/>
</p>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Create</button>
</div>
</fieldset>
}
当我这样做的时候,我会得到一个错误,上面写着。。。Could not find a part of the path ...
如何获取文件实际所在的路径?
据我所知,您需要在打开文件之前将其上传到服务器,例如
if (file != null && file.ContentLength > 0)
{
// extract only the fielname
var fileName = Path.GetFileName(file.FileName);
// store the file inside ~/App_Data/uploads folder
var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
}
我从Chance和Darin Dimitrov的一个类似问题的回答中得到了以上内容:文件上载ASP.NET MVC 3.0
这个答案还引用了有用的博客文章Uploading a File(Or Files)With ASP.NET MVC
无法评论,因为我没有足够的声誉…:(
文件夹。。。
C: ''Users''maab''Desktop''2013-05-10_BuSI材料项目-Last''BuSIMaterial''BuSIMmaterial''App_Data''uploads
存在吗?如果没有,请尝试手动创建它,然后再次尝试上载。