fileFunction.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import {logs, promisify} from "./util";
  2. import Config from "./config";
  3. export const downloadFile = (url) => {
  4. let data = {tempFilePath: Config.get('imgUrl') + url}
  5. // #ifndef MP
  6. return data
  7. // #endif
  8. // #ifdef MP
  9. return promisify(uni.downloadFile, {
  10. url: Config.get('imgUrl') + url, //请求地址
  11. }).then(res => {
  12. if (res.statusCode == 200) {
  13. logs(`✔ 下载文件成功!`)
  14. return res
  15. } else {
  16. logs(`✘ 下载文件失败! statusCode 非200`)
  17. return data
  18. }
  19. }, err => {
  20. logs(`✘ 下载文件失败!${err}`)
  21. return data
  22. })
  23. // #endif
  24. }
  25. export const getFileSystemManager = (url) => {
  26. return new Promise((resolve, reject) => {
  27. uni.getFileSystemManager().readFile({
  28. filePath: url,
  29. success(res) {
  30. return resolve(res)
  31. },
  32. fail(err) {
  33. return reject(err.errMsg)
  34. }
  35. })
  36. })
  37. }
  38. export const chooseFile = (data) => {
  39. let op = {}
  40. return new Promise((resolve, reject) => {
  41. // #ifdef APP-PLUS
  42. op = {
  43. size: 1, //选择总数量
  44. isDown: true,//是否下钻(true 筛选当前目录以下的所有文件,fales 只筛选当前目录文件)
  45. types: [{
  46. name: '升级包',
  47. value: ["bin"]
  48. },]
  49. }
  50. if (data.count) op.size = data.count
  51. const AfDocument = uni.requireNativePlugin('Aq-ChooseFile')
  52. AfDocument.openMode(op, ({code, res}) => {
  53. if (code == 'success') {
  54. let data = []
  55. res.forEach((item, index) => {
  56. data.push({
  57. path: item.path,
  58. size: item.sizeHolp,
  59. name: item.name,
  60. type: item.type,
  61. })
  62. })
  63. resolve({
  64. tempFiles: data,
  65. })
  66. } else {
  67. reject(`选择文件出错`)
  68. }
  69. })
  70. // #endif
  71. // #ifdef MP-WEIXIN ||MP-QQ
  72. op = Object.assign({}, data)
  73. return promisify(uni.chooseMessageFile, op).then(res => {
  74. resolve(res)
  75. }, err => {
  76. reject(`选择文件出错 error:${err}`)
  77. })
  78. // #endif
  79. })
  80. }
  81. export const readerBin = (file) => {
  82. return new Promise((resolve, reject) => {
  83. // #ifdef APP-PLUS
  84. let environment = plus.android.importClass("android.os.Environment");
  85. // const sdRoot = environment.getExternalStorageDirectory(); //文件夹根目录
  86. const File = plus.android.importClass("java.io.File");
  87. const BufferedReader = plus.android.importClass("java.io.BufferedReader");
  88. const FileReader = plus.android.importClass("java.io.FileReader");
  89. // let readFr = new File(sdRoot + file.path);
  90. let readFr = new File(file.path);
  91. console.log('readFr', readFr)
  92. let reader = new BufferedReader(new FileReader(readFr))
  93. console.log('reader', reader)
  94. resolve(reader)
  95. // #endif
  96. // #ifdef MP
  97. const fs = uni.getFileSystemManager()
  98. fs.readFile({
  99. filePath: file.path,
  100. success(res) {
  101. // console.log('reader', reader.data)
  102. resolve(res.data)
  103. }
  104. })
  105. // #endif
  106. })
  107. }