使用 uni.downloadFile
下载文件,获取临时文件路径(tempFilePath
):
uni.downloadFile({ url: '后端返回的文件链接', // 如:https://example.com/file.docx success: (res) => { if (res.statusCode === 200) { this.openAndSaveFile(res.tempFilePath); // 调用保存逻辑 } }, fail: (err) => { console.error('下载失败:', err); } });
通过 uni.openDocument
打开文件,并设置 showMenu: true
显示保存菜单:
openAndSaveFile(tempFilePath) { uni.openDocument({ filePath: tempFilePath, showMenu: true, // 显示右上角菜单(保存、转发等) success: () => { console.log('文件打开成功'); }, fail: (err) => { console.error('打开失败:', err); } }); }
若需直接保存到指定文件夹(如微信文件助手),可结合 uni.saveFile
和 uni.getFileSystemManager()
:
saveFileToLocal(tempFilePath) { const fs = uni.getFileSystemManager(); const fileName = 'download_' + Date.now(); // 自定义文件名 const savePath = `${wx.env.USER_DATA_PATH}/${fileName}`; // 用户数据路径 fs.saveFile({ tempFilePath: tempFilePath, filePath: savePath, success: (res) => console.log('保存路径:', res.savedFilePath); uni.showToast({ title: '保存成功', icon: 'success' }); }, fail: (err) => { console.error('保存失败:', err); } }); }