【问题标题】:How to upload image in MVC 5如何在 MVC 5 中上传图片
【发布时间】:2018-04-10 18:33:36
【问题描述】:

我正在使用 Asp.net。我正在尝试将一些图像上传到数据库。我的问题是:fileUpload 始终为空。

这是我的作品

<div class="form-group">
    @Html.LabelFor(model => model.IMG, new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        <input type="file" name="fileUpload">
    </div>
</div>

这是我的控制器

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,NAME,PRICE,QUANTITY,DESCRIPTION,VIEWNUMBER,TIMEUPDATE,ACTIVE,CATE_DEP_ID")] PRODUCTS products)
{
    HttpPostedFileBase fileUpload = Request.Files["fileUpload"];
    if (ModelState.IsValid)
    {
        if (fileUpload != null)
        {
            var fileName = Path.GetFileName(fileUpload.FileName);
            var path = Path.Combine(Server.MapPath("~/Content/Images/Products"), fileName);
            // file is uploaded
            if (System.IO.File.Exists(path))
            {
                ViewBag.ThongBao = "Hình ảnh đã tồn tại";
            }
            else
            {
                fileUpload.SaveAs(path);
            }

            products.IMG = path;
            db.PRODUCTS.Add(products);
            db.SaveChanges();
            return RedirectToAction("Index");
        }
    }

    ViewBag.CATE_DEP_ID = new SelectList(db.CATE_DEP, "ID", "ID", products.CATE_DEP_ID);
    return View(products);
}

【问题讨论】:

  • 您的表单上是否有enctype 属性
  • 你的表单有enctype="multipart/form-data"属性吗?
  • 是的,我有:Html.BeginForm("Create", "QuanLyProduct", FormMethod.Post, new { @enctype = "multipart/form-data" })
  • 您是通过直接操作(例如,单击提交按钮)还是通过称为“创建”的 ajax 提交表单?
  • 我不使用 ajax,我使用的是 @Sudipta Maiti 的 post form

标签: asp.net-mvc asp.net-mvc-5


【解决方案1】:

请在您的控制器中更改以下代码行。您的代码应该可以正常工作:

HttpPostedFileBase fileUpload = Request.Files[0];

【讨论】:

  • 它没有工作,我收到这个错误:System.ArgumentOutOfRangeException: Index was out of range
猜你喜欢
  • 2017-12-15
  • 1970-01-01
  • 2016-08-03
  • 2012-01-11
  • 2014-12-04
  • 2021-08-27
  • 2018-08-29
  • 2018-10-04
  • 2017-01-01
相关资源
最近更新 更多