uniapp(安卓)之文件下载
uniapp(安卓)之文件下载
方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | // 本地路径开头使用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文件中。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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)
1 2 3 | export function exportZrWord(id,name) { return request.downloadFile( "/honor/spaceData/exportZrWord?projectId=" + id,name) } |
钻研不易,转载请注明出处。。。。。。
分类:
uniapp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2021-11-30 excel之富集分析图制作