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
| // @ts-nocheck
| import {platform} from '../platform'
| /**
| * buffer转路径
| * @param {Object} buffer
| */
| // @ts-nocheck
| export function arrayBufferToFile(buffer: ArrayBuffer | Blob, name?: string, format?:string):Promise<(File|string)> {
| return new Promise((resolve, reject) => {
| // #ifdef MP
| const fs = uni.getFileSystemManager()
| //自定义文件名
| if (!name && !format) {
| reject(new Error('ERROR_NAME_PARSE'))
| }
| const fileName = `${name || new Date().getTime()}.${format.replace(/(.+)?\//,'')}`;
| let pre = platform()
| const filePath = `${pre.env.USER_DATA_PATH}/${fileName}`
| fs.writeFile({
| filePath,
| data: buffer,
| success() {
| resolve(filePath)
| },
| fail(err) {
| console.error(err)
| reject(err)
| }
| })
| // #endif
|
| // #ifdef H5
| const file = new File([buffer], name, {
| type: format,
| });
| resolve(file)
| // #endif
|
| // #ifdef APP-PLUS
| const bitmap = new plus.nativeObj.Bitmap('bitmap' + Date.now())
| const base64 = uni.arrayBufferToBase64(buffer)
| bitmap.loadBase64Data(base64, () => {
| if (!name && !format) {
| reject(new Error('ERROR_NAME_PARSE'))
| }
| const fileNmae = `${name || new Date().getTime()}.${format.replace(/(.+)?\//,'')}`;
| const filePath = `_doc/uniapp_temp/${fileNmae}`
| bitmap.save(filePath, {},
| () => {
| bitmap.clear()
| resolve(filePath)
| },
| (error) => {
| bitmap.clear()
| reject(error)
| })
| }, (error) => {
| bitmap.clear()
| reject(error)
| })
| // #endif
| })
| }
|
|