合同小程序前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
5.0 KiB

3 months ago
  1. # lime-file-utils
  2. - fileUtils 是一款可以轻松地在文件和 Base64 编码的数据之间进行转换,从而提高开发效率的UTS API工具包
  3. ## 安装
  4. 插件市场导入即可
  5. ## 文档
  6. [file-utils](https://limex.qcoon.cn/native/file-utils.html)
  7. ## 使用
  8. - APP是同步函数,非APP是Promise
  9. ```js
  10. import { fileToDataURL, dataURLToFile, processFile, ProcessFileOptions } from '@/uni_modules/lime-file-utils'
  11. const url = ref('')
  12. const src = ref('')
  13. const base64 = `data:image/png;base64,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`
  14. // #ifdef WEB || MP
  15. fileToDataURL('/static/logo.png').then(res => {
  16. url.value = res
  17. })
  18. dataURLToFile(base64).then(res => {
  19. src.value = res
  20. })
  21. // #endif
  22. // #ifdef APP
  23. url.value = fileToDataURL('/static/logo.png') ?? ''
  24. src.value = dataURLToFile(base64) ?? '';
  25. // #endif
  26. // 相当于 fileToDataURL
  27. processFile({
  28. type: 'toDataURL',
  29. path: '/static/logo.png',
  30. success: (res: string)=>{
  31. url.value = res
  32. }
  33. } as ProcessFileOptions)
  34. // 相当于 dataURLToFile
  35. processFile({
  36. type: 'toFile',
  37. path: base64,
  38. success: (res: string)=>{
  39. src.value = res
  40. }
  41. } as ProcessFileOptions)
  42. ```
  43. ## fileToDataURL
  44. 将`文件`或`图片`转成 `URL(data URL)`,接收一个文件路径,APP 返回的是`DataURL`或`null`, 非APP 返回的是`Promise<string>`
  45. ```js
  46. fileToDataURL(filePath : string)
  47. ```
  48. ## fileToBase64
  49. 将`文件`或`图片`转成 `Base64`, 接收一个文件路径,APP 返回的是`Base64`或`null`, 非APP 返回的是`Promise<string>`
  50. ```js
  51. fileToBase64(filePath : string)
  52. ```
  53. ## dataURLToFile
  54. `Base64` 编码的数据 `URL(data URL)`保存为临时路径,接收一个dataURL,参数`filename`为可选, APP返回的是`string`或`null`,非APP 返回的是`Promise<string>`
  55. ```js
  56. dataURLToFile(dataURL : string, filename : NullableString = null)
  57. ```
  58. ## processFile
  59. 是上面三个函数的总和,接收`ProcessFileOptions`
  60. ```js
  61. processFile({
  62. type: 'toBase64' | 'toDataURL' | 'toFile',
  63. path: string,
  64. filename?: string,//如果是toFile,则可以设置保存文件的文件名
  65. success ?: (res : string) {},
  66. fail ?: (res : any) {},
  67. complete ?: (res : any) {}
  68. } as ProcessFileOptions)
  69. ```
  70. ## 打赏
  71. 如果你觉得本插件,解决了你的问题,赠人玫瑰,手留余香。
  72. ![](https://testingcf.jsdelivr.net/gh/liangei/image@1.9/alipay.png)
  73. ![](https://testingcf.jsdelivr.net/gh/liangei/image@1.9/wpay.png)