123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // @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
- })
- }
|