我正在创建ASP.net MVC5 Web应用程序,我想允许用户将文件上传到服务器文件夹并将路径保存在数据库中。 还将上传的文件从服务器下载到他的电脑。
上传文件-> cshtml:
@ Html.TextBoxFor(m => m.attached,新的{type =“ file”})
创建动作:
public ActionResult Create([Bind(Include = "op_id,op_name,op_typeid,op_date,budget,op_statusid,sup_id,order_no,order_typeid,attached,notes")] operation operation , HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
if (Request.Files.Count > 0)
{
file = Request.Files[0];
if (file.ContentLength > 0)
{ var fileName = Path.GetFileName(file.FileName);
bool folder_exists3 = Directory.Exists(Server.MapPath("~/uploads/" + file.FileName));
if (!folder_exists3)
{
file.SaveAs(Path.Combine(Server.MapPath("~/uploads/"), fileName));
}
}
}
db.operations.Add(operation);
db.SaveChanges();
return RedirectToAction("Index");
}
下载文件-> cshtml:
@ Html.ActionLink(“ operations”,“ GetFile”,新的{name = item.attached})
动作:
[HttpGet]
public FileResult GetFile(string name)
{
var FileVirtualPath = "c:/uploads/" + name;
return File(FileVirtualPath, "application/force-download", Path.GetFileName(FileVirtualPath));
}
它将文件名保存在数据库中,但不将文件保存到服务器文件夹中,因此无法下载
有什么帮助吗?