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+")", }); } }