.net core Webapi 文件上传

.net core Webapi 文件上传

最近在做微信小程序上传文件的过程中,遇到的一些坑给大家整理下。

下面直接给大家看个小demo

微信小程序前端上传请求

wx.chooseImage({
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
    success: function (res) {
        let url = app.GET_API_URL("Report", "SubmitEquipment");
        wx.uploadFile({
            url: url, //仅为示例,非真实的接口地址
            filePath: res.tempFilePaths[0],
            name: 'file',
            formData: {
                'processName': 'A03004',
                'incident': '0',
            },
            success(res) {
            }
        })
    }
})
后端Webapi请求

在这里大家要注意的是,这里些的是.net core文件操作,由于个人原因,将asp.net.net core 弄混淆了,导致在这一块浪费了很多时间,在这里,我给大家些两个方案,asp.net 和.net core

他们主要的区别在于:

1.asp.net 大部分都是使用的:HttpFileCollectionHttpContext.Current.Request.Files

2..net core 使用的是IFormFileIFormFileCollection 方便简单

后端Webapi请求(asp.net方式)


  [HttpPost]
        public string PostFiles()
        {
            string result = "";
            HttpFileCollection filelist = HttpContext.Current.Request.Files;
            if (filelist != null && filelist.Count > 0)
            {
                for (int i = 0; i < filelist.Count; i++)
                {
                    HttpPostedFile file = filelist[i];
                    String Tpath = "/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
                    string filename = file.FileName;
                    string FileName = DateTime.Now.ToString("yyyyMMddHHmmssfff");
                    string FilePath = 保存路径 + "\\" + Tpath + "\\";
                    DirectoryInfo di = new DirectoryInfo(FilePath);
                    if (!di.Exists) { di.Create(); }
                    try
                    {
                        file.SaveAs(FilePath + FileName);
                        result.obj = (Tpath + FileName).Replace("\\", "/");
                    }
                    catch (Exception ex)
                    {
                        result = "上传文件写入失败:" + ex.Message;
                    }
                }
            }
            else
            {
                result = "上传的文件信息不存在!";
            }
            return result;
        }

后端Webapi请求(.net core方式)

     /// <summary>
        /// 上传图片
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public ActionResult<bool> UploadFile(IFormFile file)
        {
            string json = string.Empty;
            if (file != null)
            {
                try
                {
                    // 文件后缀
                    var fileExtension = Path.GetExtension(file.FileName);
                    // 判断后缀是否是图片
                    const string fileFilt = ".gif|.jpg|.jpeg|.png";
                    if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
                    {
                        //myds.Message = "请上传jpg、png、gif格式的图片";
                    }
                    var strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff"); //取得时间字符串
                    var strRan = Convert.ToString(new Random().Next(100, 999)); //生成三位随机数
                    var saveName = strDateTime + strRan + fileExtension;// 
                    //保存文件
                    string path = MyLib.ConfigurationManager.AppSettings["RootPortalPath"];
                    string dir = path + "/File/" + DateTime.Now.ToString("yyyy/MM/dd");
                    string filePath = dir + "/" + saveName;
                    if (!Directory.Exists(dir))
                        Directory.CreateDirectory(dir);
                    // 保存文件到服务器
                    using (FileStream fs = System.IO.File.Create(filePath))
                    {
                        file.CopyTo(fs);
                        fs.Flush();
                    }
                }
                catch (Exception ex)
                {
                    //这边增加日志,记录错误的原因
                    //ex.ToString();
                }
            }
            return ActionResultUtil.JsonText(json);
        }
# .net core  

评论

友情链接:

陌上花开

神奇的海螺

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×