使用MVC上传文件并将其路径保存到DB
本文关键字:路径 保存 DB MVC 文件 使用 | 更新日期: 2023-09-27 17:50:58
我有一个MVC应用程序,这就是我打算做的。我有一个字段,用来存储我上传到服务器上的文件的路径。这是模型:
int ID
string Title
string Path
这是我的控制器:
public ActionResult Create(Book book)
{
if (ModelState.IsValid)
{
db.Books.Add(book);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.CreatedBy = new SelectList(db.Users, "ID", "UserName", book.CreatedBy);
return View(book);
}
我找不到一个控件来上传MVC 3中的文件。我不知道是否有解决方法,因为所有可用的解决方案都将文件视为单独的实体。
既可以POST上传的文件,也可以POST其他表单变量。首先,声明控制器:
public ActionResult Create(Book book, HttpPostedFileBase file)
{
if (ModelState.IsValid)
{
db.Books.Add(book);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.CreatedBy = new SelectList(db.Users, "ID", "UserName", book.CreatedBy);
return View(book);
}
然后在你的表单中:
@using (Html.BeginForm("Create", "Book", FormMethod.Post, new {enctype = "multipart/form-data"}))
{
@Html.TextBoxFor(m => m.Title)
<input type="file" id="file" name="file" />
<input type="submit" value="Upload" />
}
这将POST一个文件和"Title"。然后你可以对这个文件做你想做的事情,在file中访问它的文件名。文件名,或将其保存在某个地方。关键是将表单的enctype设置为"multipart/form-data"。有关其他示例,请参阅本教程