uniapp点击按钮选择图片后上传

uniapp点击按钮选择图片后上传

uniapp端代码:

insertimg() {
                var that = this;
                var baseUrl = getApp().globalData.baseUrl;
                uni.chooseImage({
                    count: 1, //默认9
                    sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
                    sourceType: ['album'], //从相册选择
                    success: function(res) {
                        console.log(JSON.stringify(res.tempFilePaths));

                        uni.uploadFile({
                            timeout: 10000, //超时10秒
                            url: baseUrl + '/Home/ImgUpload900', // 仅为示例,非真实的接口地址
                            filePath: res.tempFilePaths[0],
                            name: 'file',
                            formData: {
                                user: 'test'
                            },
                            success: (res2) => {

                                var jsonobj = JSON.parse(res2.data);
                                if (jsonobj.code == 0) {
                                    var obj = {
                                        type: 'img',
                                        body: baseUrl + jsonobj.data.src
                                    }
                                    that.intro.push(obj);
                                } else {
                                    uni.showModal({
                                        content: jsonobj.msg,
                                        showCancel: false,
                                    })
                                }
                            },
                            fail: (res3) => {
                                uni.showModal({
                                    content: '上传出错:' + JSON.stringify(res3),
                                    showCancel: false,
                                })
                            }
                        });
                    }
                });
            },

ASP.NET CORE后端代码:


        /// <summary>
        /// layui编辑器里的上传图片功能 
        /// {
        ///   "code": 0 //0表示成功,其它失败
        ///   ,"msg": "" //提示信息 //一般上传失败后返回
        ///   ,"data": {
        ///     "src": "图片路径"
        ///     ,"title": "图片名称" //可选
        ///   }
        /// }
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public IActionResult ImgUpload900()
        {
            try
            { 
                var imgFile = Request.Form.Files[0];
                if (imgFile != null && !string.IsNullOrEmpty(imgFile.FileName))
                {
                    long size = 0;
                    string tempname = "";
                    var filename = System.Net.Http.Headers.ContentDispositionHeaderValue
                                    .Parse(imgFile.ContentDisposition)
                                    .FileName
                                    .Trim();
                    var extname = filename.Substring(filename.LastIndexOf('.'), filename.Length - filename.LastIndexOf('.')); //扩展名,如.jpg

                    extname = extname.Replace("\"", "");

                    #region 判断后缀
                    if ( !extname.ToLower().Contains("png") && !extname.ToLower().Contains("gif") && !extname.ToLower().Contains("jpeg"))
                    {
                        return Json(new { code = 1, msg = "只允许上传jpg,png,gif,jpeg格式的图片.", });
                    }
                    #endregion

                    #region 判断大小
                    long mb = imgFile.Length / 1024 / 1024; // MB
                    if (mb > 50)
                    {
                        return Json(new { code = 1, msg = "只允许上传小于 50MB 的图片.", });
                    }
                    #endregion

                    var filename1 = System.Guid.NewGuid().ToString().Substring(0, 6) + extname;
                    tempname = filename1;
                    var path = hostingEnv.WebRootPath; //网站静态文件目录  wwwroot
                    string dir = DateTime.Now.ToString("yyyyMMdd");
                    //完整物理路径
                    string wuli_path = path + $"{Path.DirectorySeparatorChar}upload{Path.DirectorySeparatorChar}{dir}{Path.DirectorySeparatorChar}";
                    if (!System.IO.Directory.Exists(wuli_path))
                    {
                        System.IO.Directory.CreateDirectory(wuli_path);
                    }
                    filename = wuli_path + filename1;
                    size += imgFile.Length;
                    using (FileStream fs = System.IO.File.Create(filename))
                    {
                        imgFile.CopyTo(fs);
                        fs.Flush();
                    }
                    #region 生成1200x900的图片
                    int out_w = 0;
                    int out_h = 0;
                    Tool.GetImgWH(filename, out out_w, out out_h);
                    if (out_w > 1200)
                    {
                        //宽度大于1200的才生成
                        Tool.CreateImage(filename, filename + "_1200x900.jpg", 1200, 900);
                        filename1 += "_1200x900.jpg";
                    }

                    #endregion
                    return Json(new
                    {
                        code = 0,
                        msg = "上传成功",
                        data = new
                        {
                            src = $"/upload/{dir}/{filename1}",
                            title = filename1
                        }
                    });
                }
                return Json(new { code = 1, msg = "上传失败", });
            }
            catch (Exception ex)
            {
                return Json(new { code = 1, msg = "上传失败("+ex.Message+")", });
            }
        }