oss.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { request } from '@/utils/request'
  2. // 上传文件到 OSS
  3. // @Author: Antigravity
  4. export function uploadFile(filePath) {
  5. return new Promise((resolve, reject) => {
  6. const token = uni.getStorageSync('token') || ''
  7. // 使用 import() 动态获取配置,避免循环依赖或加载顺序问题
  8. import('@/utils/config').then(({ BASE_URL, DEFAULT_HEADERS }) => {
  9. uni.uploadFile({
  10. url: BASE_URL + '/resource/oss/upload',
  11. filePath: filePath,
  12. name: 'file',
  13. header: {
  14. 'Authorization': token ? `Bearer ${token}` : '',
  15. ...DEFAULT_HEADERS
  16. },
  17. success: (res) => {
  18. const resData = JSON.parse(res.data)
  19. if (resData.code === 200) {
  20. resolve(resData.data)
  21. } else {
  22. uni.showToast({ title: resData.msg || '上传失败', icon: 'none' })
  23. reject(resData.msg)
  24. }
  25. },
  26. fail: (err) => {
  27. uni.showToast({ title: '网络异常', icon: 'none' })
  28. reject(err)
  29. }
  30. })
  31. }).catch(reject)
  32. })
  33. }