1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
| import {
| warpPlusMethod,
| warpPlusErrorCallback,
| getExtName
| } from '../util'
|
| import {
| invoke
| } from '../../bridge'
|
| const SAVED_DIR = 'uniapp_save'
| const SAVE_PATH = `_doc/${SAVED_DIR}`
|
| function getSavedFileDir (success, fail) {
| fail = fail || function () { }
| plus.io.requestFileSystem(plus.io.PRIVATE_DOC, fs => { // 请求_doc fs
| fs.root.getDirectory(SAVED_DIR, { // 获取文件保存目录对象
| create: true
| }, success, fail)
| }, fail)
| }
|
| let index = 0
| export function saveFile ({
| tempFilePath
| } = {}, callbackId) {
| const errorCallback = warpPlusErrorCallback(callbackId, 'saveFile')
| const fileName = `${Date.now()}${index++}${getExtName(tempFilePath)}`
|
| plus.io.resolveLocalFileSystemURL(tempFilePath, entry => { // 读取临时文件 FileEntry
| getSavedFileDir(dir => {
| entry.copyTo(dir, fileName, () => { // 复制临时文件 FileEntry,为了避免把相册里的文件删除,使用 copy,微信中是要删除临时文件的
| const savedFilePath = SAVE_PATH + '/' + fileName
| invoke(callbackId, {
| errMsg: 'saveFile:ok',
| savedFilePath
| })
| }, errorCallback)
| }, errorCallback)
| }, errorCallback)
| }
|
| export function getSavedFileList (options, callbackId) {
| const errorCallback = warpPlusErrorCallback(callbackId, 'getSavedFileList')
|
| getSavedFileDir(entry => {
| var reader = entry.createReader()
|
| var fileList = []
| reader.readEntries(entries => {
| if (entries && entries.length) {
| entries.forEach(entry => {
| entry.getMetadata(meta => {
| fileList.push({
| filePath: plus.io.convertAbsoluteFileSystem(entry.fullPath),
| createTime: meta.modificationTime.getTime(),
| size: meta.size
| })
| if (fileList.length === entries.length) {
| invoke(callbackId, {
| errMsg: 'getSavedFileList:ok',
| fileList
| })
| }
| }, errorCallback, false)
| })
| } else {
| invoke(callbackId, {
| errMsg: 'getSavedFileList:ok',
| fileList
| })
| }
| }, errorCallback)
| }, errorCallback)
| }
|
| export const getFileInfo = warpPlusMethod('io', 'getFileInfo')
|
| export function getSavedFileInfo ({
| filePath
| } = {}, callbackId) {
| const errorCallback = warpPlusErrorCallback(callbackId, 'getSavedFileInfo')
|
| plus.io.resolveLocalFileSystemURL(filePath, entry => {
| entry.getMetadata(meta => {
| invoke(callbackId, {
| createTime: meta.modificationTime.getTime(),
| size: meta.size,
| errMsg: 'getSavedFileInfo:ok'
| })
| }, errorCallback, false)
| }, errorCallback)
| }
|
| export function removeSavedFile ({
| filePath
| } = {}, callbackId) {
| const errorCallback = warpPlusErrorCallback(callbackId, 'removeSavedFile')
|
| plus.io.resolveLocalFileSystemURL(filePath, entry => {
| entry.remove(() => {
| invoke(callbackId, {
| errMsg: 'removeSavedFile:ok'
| })
| }, errorCallback)
| }, errorCallback)
| }
|
|