如题,使用 uni.chooseFile 选中文件后,所获得的 tempFiles(Array<ChooseFileTempFile>)中的文件地址是“file://xxx/xxx/xxx.jpg”
uni.chooseFile({
type: 'all',
count: 1,
success: (res) => {
console.log(res)
if (res.tempFiles.length > 0) {
///获得文件的路径
this.strFilePath = res.tempFiles[0].path
this.strFileName = res.tempFiles[0].name
}
},
complete: (res) => {
console.log(res)
}
})
不管是将这个文件路径(strFilePath)给到 uni.openDocument、uni.getFileInfo,还是说如下进行copy操作,最后都会报 fail srcPath No such file or directory 的错误。
const sandboxDir = uni.env.USER_DATA_PATH;
const sandboxFilePath = `${sandboxDir}/${this.strFileName}`;
let fileManager = uni.getFileSystemManager()
fileManager.copyFile({
srcPath: this.strFilePath, // 源路径(系统临时路径)
destPath: sandboxFilePath,
success: (fileInfo) => {
console.log("sucess copy", res)
},
fail: (err) => {
console.error('文件不存在或无法访问:', err);
uni.showToast({ title: '文件路径错误', icon: 'none' });
},
complete: function (res : any) {
console.log("complete", res)
}
} as CopyFileOptions);
请问各位老大,要如何解决这个问题啊?看以前uniapp时,是由plus.io可以处理的,但现在uniappX又不再支持plus了。
1 个回复
赢无翳 - 学无止境
可以试试这个插件https://ext.dcloud.net.cn/plugin?id=20793,支持返回绝对路径。