imageRequest.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // const { request } = require('../utils/util.js')
  2. import strings from '../utils/strings.js';
  3. module.exports = {
  4. // 上传图片到服务器
  5. uploadImage: (filePath, formData = {}) => {
  6. var Authorization = "";
  7. try {
  8. var value = wx.getStorageSync('token') || "";
  9. if (!strings.isEmpty(value)) {
  10. const resData = JSON.parse(value);
  11. Authorization = resData.token;
  12. }
  13. } catch (e) {
  14. Authorization = "";
  15. }
  16. console.log("Authorization:", Authorization)
  17. return new Promise((resolve, reject) => {
  18. // 拼接地址
  19. var baseUrl = getApp().globalData.baseUrl;
  20. let url = '/mini/wx/image/getUrl';
  21. let fullurl = `${baseUrl}${url}`;
  22. console.log("上传图片参数:", fullurl, filePath)
  23. wx.uploadFile({
  24. url: fullurl, // 替换为你的服务器地址
  25. filePath: filePath,
  26. name: 'file', // 文件对应的 key,后端需要根据这个 key 获取文件
  27. formData: formData, // 其他需要上传的表单数据,
  28. header: Object.assign({
  29. "content-type": "multipart/form-data",
  30. "appid": "wx08f94a3e90881910",
  31. "Authorization": Authorization
  32. },),
  33. responseType: 'arraybuffer',
  34. success: (res) => {
  35. console.log("上传图片返回:", res);
  36. try {
  37. // 检查响应头中的 Content-Type
  38. const contentType = res.header['Content-Type'] || res.header['content-type'];
  39. console.log("上传图片返回2:", contentType);
  40. if (contentType && contentType.includes('image/jpeg')) {
  41. // 服务器返回的是图片数据
  42. console.log("上传图片返回3:", res.data);
  43. resolve(dataUrl);
  44. } else {
  45. // 服务器返回的不是图片数据
  46. const data = JSON.parse(res.data ?? "{}");
  47. resolve(data);
  48. }
  49. } catch (e) {
  50. reject(new Error('解析服务器响应失败', e));
  51. }
  52. },
  53. fail: (err) => {
  54. console.log("上传图片返回2:", err);
  55. reject(new Error('上传失败: ' + err.errMsg));
  56. }
  57. });
  58. });
  59. }
  60. }