asp.net-mvc - 如何通过 MVC 使用文件上传?

标签 asp.net-mvc razor

我使用文件上传将文件路径插入数据库,并将上传的文件插入项目目录的文件中,我添加了我的代码,但效果不佳。

<div class="editor-field create-Bt2">
        @Html.EditorFor(model => model.Active)
        @Html.ValidationMessageFor(model => model.Active)
    </div>
    <div>
        <p class="create-Bt ">
            <input type="submit" value="Create" />
        </p>
    </div>

[HttpPost]
    public ActionResult Create(Category category)
    {
        if (ModelState.IsValid)
        {
            var fileName = "";

            var fileSavePath = "";
            var uploadedFile = Request.Files[0];
            fileName = Path.GetFileName(uploadedFile.FileName);
            fileSavePath = Server.MapPath("../../Uploads/" +
              fileName);
            uploadedFile.SaveAs(fileSavePath);


            db.Categories.Add(category);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(category);
    }

最佳答案

在您的表格上

<form action="" method="post" enctype="multipart/form-data">

  <label for="file">Filename:</label>
  <input type="file" name="file" id="file" />

  <input type="submit" />
</form>

在你的 Controller 中

[HttpPost]
public ActionResult Index(HttpPostedFileBase file) {

  if (file.ContentLength > 0) {
    var fileName = Path.GetFileName(file.FileName);
    var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
    file.SaveAs(path);

    // save the path to your table 
    // db.???

    db.SaveChanges();


  }

  return RedirectToAction("Index");
}

关于asp.net-mvc - 如何通过 MVC 使用文件上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13489470/

相关文章:

c# - 更改扩展 Controller 中 ViewData 的类型

asp.net-mvc - Razor CheckBoxFor 有条件地检查和取消检查 View

c# - 在 ASP.NET MVC 中对 Post 请求执行代码

asp.net-mvc - @Html.ActionLink() 在 if 语句中

asp.net - 如何从ASP.NET MVC中的枚举创建下拉列表?

asp.net-mvc - MVC 4 Razor - 动态命名 JavaScript 函数

c# - 为什么我的 ModelState.IsValid 在 Asp.Net MVC4 中不返回 true?

javascript - AJAX 调用 ASP MVC 操作

c# - 在重新启动 dotnet 错误之前等待文件更改

html - 你能强制所有行显示在屏幕上吗?