asp.net-mvc – 在Asp.Net Core上传图片?

asp.net-mvc – 在Asp.Net Core上传图片?,第1张

概述我想在“wwwroot / uploads / img”文件夹中上传图片,但是我收到错误.我写了以下代码: 创建视图: @model imageuploader.Models.Employee<form method="post" enctype="multipart/form-data" asp-controller="Employee" asp-action="Create"><div @H_403_1@ 我想在“wwwroot / uploads / img”文件夹中上传图片,但是我收到错误.我写了以下代码:

创建视图:

@model imageuploader.Models.Employee<form method="post" enctype="multipart/form-data" asp-controller="Employee" asp-action="Create"><div >    <div >        <input asp-for="Firstname"  />    </div></div><div >    <div >        <input asp-for="Lastname" Class="form-control" />    </div></div><div >    <div >        <input asp-for="Imagename" type="file" Class="form-control" />    </div></div><div >    <div >        <input type="submit" value="Create" />    </div></div>

型号:

public class Employee{    [Key]    public int ID { get; set; }    [required]    public string Firstname { get; set; }    [required]    public string Lastname { get; set; }    public string Imagename { get; set; }}

调节器

private Readonly RegisterDBContext _context;    private Readonly IHostingEnvironment _appEnvironment;    public EmployeeController(RegisterDBContext context,IHostingEnvironment appEnvironment)    {        _context = context;        _appEnvironment = appEnvironment;    }    [httpPost]    [ValIDateAntiForgeryToken]    public async Task<IActionResult> Create(Employee emp)    {        if (ModelState.IsValID)        {            var files = httpContext.Request.Form.files;            foreach (var Image in files)            {                if (Image != null && Image.Length > 0)                {                    var file = Image;                    //There is an error here                    var uploads = Path.Combine(_appEnvironment.WebrootPath,"uploads\img");                    if (file.Length > 0)                    {                        var filename = GuID.NewGuID().ToString().Replace("-","") + Path.GetExtension(file.filename);                        using (var fileStream = new fileStream(Path.Combine(uploads,filename),fileMode.Create))                        {                            await file.copyToAsync(fileStream);                            emp.BookPic = filename;                        }                    }                }            }            _context.Add(emp);            await _context.SaveChangesAsync();            return RedirectToAction("Index");        }        else        {            var errors = ModelState.Values.SelectMany(v => v.Errors);        }        return VIEw(emp);    }

当我点击提交按钮时出现错误(标记错误行),如何在指定路径上传图像或文件?

错误:

NullReferenceException: Object reference not set to an instance of an object.imageuploader.Controllers.EmployeeController+<Create>d__2.MoveNext() in EmployeeController.cs                        var uploads = Path.Combine(_appEnvironmen.WebrootPath,"uploads\img\");

如何在指定路径中正确上传图像?

解决方法 我解决了它.我明白我最初很糟糕

_appEnvironment

在构造函数中.
通过重复编辑,所有相关代码目前都是正确的.

谢谢@Shyju用户.

总结

以上是内存溢出为你收集整理的asp.net-mvc – 在Asp.Net Core上传图片?全部内容,希望文章能够帮你解决asp.net-mvc – 在Asp.Net Core上传图片?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1239583.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存