“我正在 VS 上使用 ASP.NET 设计一个 Web 应用程序,用户应该上传图像,但我得到“对象引用未设置为对象的实例 [重复]

Posted

技术标签:

【中文标题】“我正在 VS 上使用 ASP.NET 设计一个 Web 应用程序,用户应该上传图像,但我得到“对象引用未设置为对象的实例 [重复]【英文标题】:"I am designing a web application using ASP.NET on VS, the user should upload an image but I get "Object reference not set to an instance of an object [duplicate] 【发布时间】:2021-07-31 12:40:50 【问题描述】:
public ActionResult Create(Job job, HttpPostedFileBase upload)

    if (ModelState.IsValid)
    
        string path = Path.Combine(Server.MapPath("~/Uploads"), upload.FileName);
     
        upload.SaveAs(path);
        job.JobImage = upload.FileName;
        db.Jobs.Add(job);
        db.SaveChanges();
        return RedirectToAction("Index");
    

    ViewBag.CategoryId = new SelectList(db.Categories, "Id", "CategoryName", job.CategoryId);
    return View(job);

This is the code, What is the solution for this problem?

    上传图片问题的代码,我试过好几种解决方法都不行,比如把>换成if 0)>>但它没有用。 问题发生在> 我无法上传图片。我应该怎么做才能解决这个问题?

【问题讨论】:

表单上的文件输入控件的名称是什么?是不是叫“上传”? 【参考方案1】:

我认为您的 upload.file 名称是这里的罪魁祸首。您需要确保您的上传不会返回空值。

还要确保服务器路径存在

最后,确保将 enctype="multipart/form-data" 添加到视图中的表单控件

【讨论】:

【参考方案2】:

您没有检查正在上传的文件的空值。代码应该是这样的

public ActionResult Create(Job job, HttpPostedFileBase upload)
        
            if (ModelState.IsValid)
            
              if(upload!=null)

                string path = Path.Combine(Server.MapPath("~/Uploads"), upload.FileName);
             
                upload.SaveAs(path);
                job.JobImage = upload.FileName;
                db.Jobs.Add(job);
                db.SaveChanges();

                return RedirectToAction("Index");
            

            ViewBag.CategoryId = new SelectList(db.Categories, "Id", "CategoryName", job.CategoryId);
            return View(job);
        

有关更多信息,请查看此链接 https://www.compilemode.com/2018/02/upload-images-on-server-folder-in-asp-net-mvc.html

【讨论】:

我按你说的写了,它停止显示错误但仍然无法上传图像。我认为因为 是一个空值,关于如何初始化它的任何想法?或者如何解决这个问题? 您能否上传调用此操作的视图

以上是关于“我正在 VS 上使用 ASP.NET 设计一个 Web 应用程序,用户应该上传图像,但我得到“对象引用未设置为对象的实例 [重复]的主要内容,如果未能解决你的问题,请参考以下文章