uniapp(安卓)之文件下载
uniapp(安卓)之文件下载
方法:
// 本地路径开头使用file://,跟上手机文件本地目录storage/emulated/0,
// 这时用户文件管理器能看到的了,之后创建 下载文件夹 作为文件夹,
// 后缀是用于文件命名和格式修改,大家可以使用变量。
var url = this.downFileSrc;
let dtask = plus.downloader.createDownload(url, {
filename: "file://storage/emulated/0/下载文件夹/" + this.downFileName //利用保存路径,实现下载文件的重命名
},(d, status)=> {
//d为下载的文件对象
if (status == 200) {
uni.showToast({
icon: 'none',
mask: true,
title: '已保存到文件夹:/下载文件夹/' + this.downFileName, //保存路径
duration: 3000,
});
//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
setTimeout(()=>{
plus.runtime.openFile(d.filename); //选择软件打开文件
},1500)
} else {
//下载失败
plus.downloader.clear(); //清除下载任务
uni.showToast({
icon:'none',
mask:true,
title: '下载失败,请稍后重试',
});
}
})
// 添加tocken
let tocken = storage.get("tocken");
if (tocken != null) {
dtask.setRequestHeader('Authorization', "Bearer " + tocken);
}
// 执行
dtask.start();
注意:
1.url指文件下载的接口路径。文件将被下载到手机内部存储的”下载文件夹“文件夹下。接口为get请求。
2.uni.downloadFile、uni.saveFile的方式也可以将文件保存到手机,但保存的位置不受控制,很难在手机存储中找到。
3.plus.downloader.createDownload方法保存,由于直接使用请求接口路径,还需要配置token,所以建议添加到request.js文件中。代码如下:
downloadFile(url = "",name){
let pathurl = config.uni_app_web_api_url + url;
let tocken = storage.get("tocken");
let header = {}
if (tocken != null) {
header = {
"Authorization": 'Bearer ' + tocken,
};
}
let dtask = plus.downloader.createDownload(pathurl, {
filename: "file://storage/emulated/0/下载文件夹/"+name+".pdf" //利用保存路径,实现下载文件的重命名
},(d, status)=> {
console.log(d)
console.log(status)
//d为下载的文件对象
if (status == 200) {
uni.hideLoading();
uni.showToast({
icon: 'none',
mask: true,
title: "已保存到文件夹:/下载文件夹/"+name+".pdf", //保存路径
duration: 3000,
});
//下载成功,d.filename是文件在保存在本地的相对路径,使用下面的API可转为平台绝对路径
let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
setTimeout(()=>{
plus.runtime.openFile(d.filename); //选择软件打开文件
},1500)
} else {
//下载失败
plus.downloader.clear(); //清除下载任务
uni.showToast({
icon:'none',
mask:true,
title: '下载失败,请稍后重试',
});
}
})
dtask.start();
},
调用:(api)
export function exportZrWord(id,name) {
return request.downloadFile("/honor/spaceData/exportZrWord?projectId=" + id,name)
}
钻研不易,转载请注明出处。。。。。。

浙公网安备 33010602011771号