io.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. export default {
  2. // type: 本地文件系统常量,取值如下
  3. // 应用私有资源目录,对应常量plus.io.PRIVATE_WWW,仅应用自身可读
  4. // 应用私有文档目录,对应常量plus.io.PRIVATE_DOC,仅应用自身可读写
  5. // 应用公共文档目录,对应常量plus.io.PUBLIC_DOCUMENTS,多应用时都可读写,常用于保存应用间共享文件
  6. // 应用公共下载目录,对应常量plus.io.PUBLIC_DOWNLOADS,多应用时都可读写,常用于保存下载文件
  7. write(path, data, type=plus.io.PRIVATE_DOC) {
  8. console.log('[write]', path, data);
  9. return new Promise((resolve, reject) => {
  10. try {
  11. plus.io.requestFileSystem(
  12. type,
  13. fs => {
  14. // 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
  15. fs.root.getFile(
  16. path, {
  17. create: true // 文件不存在则创建
  18. },
  19. fileEntry => {
  20. // 文件在手机中的路径
  21. console.log('[write] fileEntry.fullPath', fileEntry.fullPath)
  22. fileEntry.createWriter(writer => {
  23. // 向文件中写入数据
  24. writer.write(data);
  25. // 文件写入成功完成的回调函数
  26. writer.onwrite = res => {
  27. console.log('[write] 写入成功', res);
  28. resolve(res)
  29. };
  30. // 文件写入操作失败时调用的回调函数
  31. writer.onerror = err => {
  32. console.log('[write] 写入失败', err);
  33. reject(err)
  34. };
  35. },
  36. err => {
  37. console.log('[write] createWriter failed: ' + err);
  38. reject(err)
  39. });
  40. },
  41. err => {
  42. console.log('[write] getFile failed: ' + err);
  43. reject(err)
  44. }
  45. );
  46. },
  47. err => {
  48. console.log('[write] requestFileSystem failed: ', err);
  49. reject(err)
  50. }
  51. );
  52. } catch(err) {
  53. console.error('[write] catch err', err)
  54. }
  55. })
  56. },
  57. read(path, type=plus.io.PRIVATE_DOC) {
  58. let that = this;
  59. return new Promise((resolve, reject) => {
  60. plus.io.requestFileSystem(
  61. type,
  62. fs => {
  63. fs.root.getFile(
  64. path, {
  65. create: false
  66. },
  67. fileEntry => {
  68. fileEntry.file(function(file) {
  69. console.log('[read] 文件大小:' + file.size + ' 文件名:' + file.name, file);
  70. //创建读取文件对象
  71. let fileReader = new plus.io.FileReader();
  72. //以文本格式读取文件数据内容
  73. fileReader.readAsText(file, 'utf-8');
  74. //读取文件成功完成的回调函数
  75. fileReader.onload = function(res) {
  76. console.log("[read] 文件读取操作完成", res);
  77. resolve(res.target.result)
  78. };
  79. //文件读取操作失败时调用的回调函数
  80. fileReader.onerror = function(err) {
  81. console.log("[read] 文件读取操作失败", err);
  82. reject(err)
  83. };
  84. });
  85. },
  86. err => {
  87. console.log('[read] getFile failed: ', err)
  88. reject(err)
  89. }
  90. );
  91. },
  92. err => {
  93. console.log('[read] requestFileSystem failed: ', err);
  94. reject(err);
  95. }
  96. );
  97. })
  98. }
  99. }