base64.js 914 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * @description 本地图片转base64方法(兼容APP、H5、小程序)
  3. * @param {number} path 图片本地路径
  4. * @returns Promise对象
  5. */
  6. const toBase64 = (path) => {
  7. return new Promise((resolve, reject) => {
  8. // #ifdef APP-PLUS
  9. plus.io.resolveLocalFileSystemURL(path, (entry) => {
  10. entry.file((file) => {
  11. let fileReader = new plus.io.FileReader()
  12. fileReader.readAsDataURL(file)
  13. fileReader.onloadend = (evt) => {
  14. let base64 = evt.target.result.split(",")[1]
  15. resolve(base64)
  16. }
  17. })
  18. })
  19. // #endif
  20. // #ifdef H5
  21. uni.request({
  22. url: path,
  23. responseType: 'arraybuffer',
  24. success: (res) => {
  25. resolve(uni.arrayBufferToBase64(res.data))
  26. }
  27. })
  28. // #endif
  29. // #ifdef MP-WEIXIN
  30. uni.getFileSystemManager().readFile({
  31. filePath: path,
  32. encoding: 'base64',
  33. success: (res) => {
  34. resolve(res.data)
  35. }
  36. })
  37. // #endif
  38. })
  39. }
  40. export {
  41. toBase64
  42. }