使用.Net Core+IView+Vue集成上传图片功能

 最近的项目里有上传图片的功能,当然这个功能在项目里是必须要有的,那么目前这个项目是使用完全的前后端分离,在选择文件上传的组件中还是选择了全面支持Vue的IView,任何上传图片都是通过HTTP请求,服务端从request中读,那么思路有了,直接创建webapi项目吧。

一般来说,在.net core中静态文件应该放到wwwroot,在其中创建一个文件夹。

再做好跨域的东西,一般都是通过cors包。创建控制器,代码如下:

复制代码
    public class IndexController : ControllerBase     {         [HttpPost]         public async Task<bool> InsertPicture([FromServices]IHostingEnvironment environment)         {             var data = new PicData();             string path = string.Empty;             var files = Request.Form.Files;             if (files == null || files.Count() <= 0) { data.Msg = "请选择上传的文件。"; return false; }             //格式限制            var allowType = new string[] { "image/jpg", "image/png","image/jpeg"};             if (files.Any(c => allowType.Contains(c.ContentType)))             {                 if (files.Sum(c => c.Length) <= 1024 * 1024 * 4)                 {                     foreach (var file in files)                     {                         string strpath = Path.Combine("Upload", DateTime.Now.ToString("MMddHHmmss") + file.FileName);                         path = Path.Combine(environment.WebRootPath, strpath);                          using (var stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite))                         {                             await file.CopyToAsync(stream);                         }                     }                     data.Msg = "上传成功";                     return true;                 }                 else                 {                     data.Msg = "图片过大";                     return false;                 }             }             else              {                 data.Msg = "图片格式错误";                 return false;             }         }      }     public class PicData     {         public string Msg { get; set; }     }
复制代码

代码解读:

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信