k***@jgdt.com
k***@jgdt.com
  • 发布:2025-08-21 16:20
  • 更新:2025-08-21 17:44
  • 阅读:22

【求助】uni.chooseFile获得的文件路径在其它文件操作的API中无法使用

分类:uni-app x

如题,使用 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了。

2025-08-21 16:20 负责人:无 分享
已邀请:
赢无翳

赢无翳 - 学无止境

可以试试这个插件https://ext.dcloud.net.cn/plugin?id=20793,支持返回绝对路径。

要回复问题请先登录注册