Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

59 rader
1.4 KiB

  1. import API from '@/api/config.js'
  2. import config from '@/utils/config.js'
  3. import { getClient, getNonce, getVersion, guid } from '@/utils/util.js'
  4. let BASE_URL = config.BASE_URL
  5. // #ifdef H5
  6. BASE_URL = '/api'
  7. // #endif
  8. export function uploadImage(filePath, fileInfo = {}) {
  9. const token = uni.getStorageSync('token')
  10. let mac = uni.getStorageSync('mac')
  11. if (!mac) {
  12. mac = uni.getSystemInfoSync().deviceId || guid()
  13. uni.setStorageSync('mac', mac)
  14. }
  15. const { timeStr, nonce } = getNonce()
  16. const { version, version_code } = getVersion()
  17. return new Promise((resolve, reject) => {
  18. uni.uploadFile({
  19. url: `${BASE_URL}${API.INTERFACE_FILE_UPLOAD}`,
  20. filePath,
  21. name: 'file',
  22. header: {
  23. token,
  24. timestr: timeStr,
  25. nonce
  26. },
  27. formData: {
  28. token,
  29. mac,
  30. client: getClient(),
  31. source: uni.getStorageSync('source') || '',
  32. version,
  33. version_code,
  34. upload_type: 1,
  35. file_name: fileInfo.name || ''
  36. },
  37. success: (res) => {
  38. let data = {}
  39. try {
  40. data = typeof res.data === 'string' ? JSON.parse(res.data) : res.data
  41. } catch (e) {
  42. reject({ code: 1, msg: '上传结果解析失败' })
  43. return
  44. }
  45. if (data.code === 0) {
  46. resolve(data)
  47. } else {
  48. reject(data)
  49. }
  50. },
  51. fail: (e) => reject({ code: 1, msg: e.errMsg || '上传失败' })
  52. })
  53. })
  54. }