upload.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { aliyunpolicy } from "@/utils/upload";
  2. export function uploadFile(rules) {
  3. return new Promise((resolve, reject) => {
  4. uni.chooseImage({
  5. count: 1,
  6. sizeType: ["compressed"],
  7. sourceType: ["album", "camera"], //从相册选择
  8. success: (chooseImageRes) => {
  9. const tempFilePaths = chooseImageRes.tempFilePaths[0];
  10. if (rules && !rules(tempFilePaths)) {
  11. return;
  12. }
  13. aliyunpolicy({ imageStatus: 6 }).then((res) => {
  14. let ossToken = res.resultContent;
  15. uni.uploadFile({
  16. url: ossToken.host,
  17. name: "file",
  18. filePath: tempFilePaths,
  19. fileType: "image",
  20. header: {
  21. AuthorizationToken: "WX " + uni.getStorageSync("token"),
  22. },
  23. formData: {
  24. key: ossToken.dir,
  25. OSSAccessKeyId: ossToken.accessid,
  26. policy: ossToken.policy,
  27. Signature: ossToken.signature,
  28. success_action_status: 200,
  29. },
  30. success: (result) => {
  31. resolve(ossToken.dir);
  32. },
  33. fail: (error) => {
  34. uni.showToast({
  35. title: "上传报错",
  36. icon: "none",
  37. });
  38. return;
  39. },
  40. });
  41. });
  42. },
  43. });
  44. });
  45. }