当前位置:   article > 正文

微信小程序实现图片上传功能_uploadimage: function ()

uploadimage: function ()

前端: 微信开发者工具

后端:.Net

服务器:阿里云

这里介绍微信小程序如何实现上传图片到自己的服务器上

前端代码

  1. data: {
  2. productInfo: {}
  3. },
  4. //上传图片
  5. uploadImage: function () {
  6. var that = this;
  7. wx.chooseImage({
  8. count: 1, //最多可以选择的图片总数
  9. sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
  10. sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
  11. success: function (res) {
  12. // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
  13. var tempFilePaths = res.tempFilePaths;
  14. //启动上传等待中...
  15. wx.showToast({
  16. title: '正在上传...',
  17. icon: 'loading',
  18. mask: true,
  19. duration: 10000
  20. })
  21. wx.uploadFile({
  22. url: '192.168.1.1/home/uploadfilenew',
  23. filePath: tempFilePaths[0],
  24. name: 'uploadfile_ant',
  25. formData: {
  26. },
  27. header: {
  28. "Content-Type": "multipart/form-data"
  29. },
  30. success: function (res) {
  31. var data = JSON.parse(res.data);
  32. //服务器返回格式: { "Catalog": "testFolder", "FileName": "1.jpg", "Url": "https://test.com/1.jpg" }
  33. console.log(data);
  34. },
  35. fail: function (res) {
  36. wx.hideToast();
  37. wx.showModal({
  38. title: '错误提示',
  39. content: '上传图片失败',
  40. showCancel: false,
  41. success: function (res) { }
  42. })
  43. }
  44. });
  45. }
  46. });
  47. }

后端上传代码(将文件上传到服务器临时文件夹内)

  1. [HttpPost]
  2. public ContentResult UploadFileNew()
  3. {
  4. UploadFileDTO model = new UploadFileDTO();
  5. HttpPostedFileBase file = Request.Files["uploadfile_ant"];
  6. if (file != null)
  7. {
  8. //公司编号+上传日期文件主目录
  9. model.Catalog = DateTime.Now.ToString("yyyyMMdd");
  10. //获取文件后缀
  11. string extensionName = System.IO.Path.GetExtension(file.FileName);
  12. //文件名
  13. model.FileName = System.Guid.NewGuid().ToString("N") + extensionName;
  14. //保存文件路径
  15. string filePathName = System.IO.Path.Combine(CommonHelper.GetConfigValue("ImageAbsoluteFolderTemp"), model.Catalog);
  16. if (!System.IO.Directory.Exists(filePathName))
  17. {
  18. System.IO.Directory.CreateDirectory(filePathName);
  19. }
  20. //相对路径
  21. string relativeUrl = CommonHelper.GetConfigValue("ImageRelativeFolderTemp");
  22. file.SaveAs(System.IO.Path.Combine(filePathName, model.FileName));
  23. //获取临时文件相对完整路径
  24. model.Url = System.IO.Path.Combine(relativeUrl, model.Catalog, model.FileName).Replace("\\", "/");
  25. }
  26. return Content(Newtonsoft.Json.JsonConvert.SerializeObject(model));
  27. }
  1. /// <summary>
  2. /// 上传文件 返回数据模型
  3. /// </summary>
  4. public class UploadFileDTO
  5. {
  6.     /// <summary>
  7.     /// 目录名称
  8.     /// </summary>
  9.     public string Catalog { set; get; }
  10.     /// <summary>
  11.     /// 文件名称,包括扩展名
  12.     /// </summary>
  13.     public string FileName { set; get; }
  14.     /// <summary>
  15.     /// 浏览路径
  16.     /// </summary>
  17.     public string Url { set; get; }
  18.     /// <summary>
  19.     /// 上传的图片编号(提供给前端判断图片是否全部上传完)
  20.     /// </summary>
  21.     public int ImgIndex { get; set; }
  22. }
  1. #region 获取配置文件Key对应Value值
  2. /// <summary>
  3. /// 获取配置文件Key对应Value值
  4. /// </summary>
  5. /// <param name="key"></param>
  6. /// <returns></returns>
  7. public static string GetConfigValue(string key)
  8. {
  9. return ConfigurationManager.AppSettings[key].ToString();
  10. }
  11. #endregion

设置配置文件上传文件对应的文件夹信息

  1. <appSettings>
  2. <!--图片临时文件夹 绝对路径-->
  3. <add key="ImageAbsoluteFolderTemp" value="D:\Images\temp" />
  4. <!--图片正式文件夹 绝对路径-->
  5. <add key="ImageAbsoluteFolderFinal" value="D:\Images\product" />
  6. <!--图片临时文件夹 相对路径-->
  7. <add key="ImageRelativeFolderTemp" value="http://192.168.1.79:9009/temp"/>
  8. <!--图片正式文件夹 相对路径-->
  9. <add key="ImageRelativeFolderFinal" value="http://192.168.1.79:9009/product"/>
  10. </appSettings>

PS:上传到服务器的临时文件夹内,当用户点击保存才把这些文件移动到正式目录下

小程序演示

自定义上传头像

 

不清楚的可以加微信联系我

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/325924
推荐阅读
相关标签
  

闽ICP备14008679号