-
小程序wx.downloadFile 返回下载进度
2018-07-10 16:33:58小程序wx.downloadFile 加wx.openDocument(新开页面打开文档,支持格式:doc, xls, ppt, pdf, docx, xlsx, pptx )返回下载进度,百分比 -
微信小程序wx.downloadFile()使用体验
2018-10-24 16:56:53微信小程序wx.downloadFile()使用体验 想给单位做一个小程序,实现模板文件下载的功能,方便办事群众把文件下载到手机上自行打印填写,也能提高办事效率。 不过想法是好的,截止目前2018年10月24日,微信小程序还...微信小程序wx.downloadFile()使用体验
想给单位做一个小程序,实现模板文件下载的功能,方便办事群众把文件下载到手机上自行打印填写,也能提高办事效率。
不过想法是好的,截止目前2018年10月24日,微信小程序还不支持这样的功能。
wx.downloadFile()获取到的文件缓存在手机上,这个文件保存时间是很短暂的,当退出小程序的时候就会被销毁,如果想在下次打开小程序的时候还能看到这个文件,就需要使用wx.saveFile()把装载在临时地址tempFilePath中的文件保存到长期缓存中。wx.downloadFile({ url: 'filepath', header: {}, success: function(res) { var tempFilePath = res.tempFilePath //console.log('临时文件地址是:' + tempFilePath) wx.saveFile({ tempFilePath: tempFilePath, success: function(res) { var saveFilePath = res.savedFilePath },//可以将saveFilePath写入到页面数据中 fail: function(res) {}, complete: function(res) { console.log('complete后的res数据:') }, }) //, }, fail: function(res) { wx.showModal({ title: '下载失败', content: '请联系管理员', }) }, complete: function(res) {}, }) }
下载图片可以通过微信小程序API提供的预览接口预览图片之后长按图片达到保存到手机的目的,但是DOC等其他类型文件就不行了,比如doc文档,只能使用wx.openDocument
wx.openDocument({ filePath: saveFilePath, //就是之前的那个saveFilePath success: function(res){ console.log(res) } })
这样可以打开预览,但是这个文件使用手机自带的文件查看器是不能打开的。也不能手动保存……
-
小程序wx.downloadFile下载pdf并保存
2020-11-27 16:16:14查了很多资料,小程wx.downloadFile(Object object)下载的pdf文件只能保存在小程序的文件目录内(藏得很深用户一般找不到),跟随小程序的删除而被清理。 图片和视频倒是可以通过api保存到系统相册中。 pdf这类的...查了很多资料,小程wx.downloadFile(Object object)下载的pdf文件只能保存在小程序的文件目录内(藏得很深用户一般找不到),跟随小程序的删除而被清理。
图片和视频倒是可以通过api保存到系统相册中。pdf这类的文件只能通过wx.openDocument预览的时候开启右上角转发或者引导用户复制下载链接用浏览器打开来下载。
按官方的说法下载的本地文件分三类链接地址
这里选择的是pdf下载下来让用户预览的时候自己选择是否转发保存出来。
一开始我参考了百度的方法通过 wx.downloadFile 下载临时文件wx.saveFile(Object object)保存成本地缓存文件最后wx.openDocument打开预览。但是这里我注意到一个坑官方的文档说明wx.saveFile(Object object)只能存10M
而且wx.openDocument转发的pdf文件会丢失pdf后缀直接打不开
排查了半天好像是wx.downloadFile临时文件的原因。咨询社区的方案wx.downloadFile使用fath参数将文件输出改成自定义的文件名加后缀。//查看并下载 See_download() { wx.downloadFile({//下载 url: url,//服务器上的pdf地址 filePath: wx.env.USER_DATA_PATH + '/test.pdf',//自定义文件地址 success: function (res) { var filePath = res.filePath wx.openDocument({//打开 filePath: filePath, success: function (res) {} }) } }) }
成功是成功了,但是wx.saveFile保存的时候报错而用wx.getSavedFileList找不到文件在哪?后续多了内存溢出怎么办?
经过一番我注意到
原来这路径实际已经保存到本地用户文件里了。直接省去wx.saveFile这一步。只要通过.readdir删除就可以了
// 删除本地文件 deletContract() { try { let file = wx.getFileSystemManager(); file.readdir({ dirPath: `${wx.env.USER_DATA_PATH}`, success: res => { console.log(res); if (res.files.length > 2) { file.unlink({ filePath: `${wx.env.USER_DATA_PATH}/${res.files[0]}`, complete: res => { } }) } } }) } catch (error) { } },
最后代码
let that = this; const fileExtName = ".pdf"; const randfile = new Date().getTime() + fileExtName; const newPath = `${wx.env.USER_DATA_PATH}/${randfile}`; that.deletContract(); wx.downloadFile({ url: 下载pdf的链接url, filePath: newPath, success: function (res) { const filePath = res.tempFilePath; wx.openDocument({ filePath: newPath, showMenu: true, fileType: 'pdf', success: function (res) {} }) }, fail: function (res) { wx.hideLoading(); } })
-
微信小程序 wx.downloadFile遇到损坏的图片
2020-03-21 16:12:24小程序获取用户微信头像过程中图片损坏,在使用wx.downloadFile下载图片的时候加上失败的回调,可以在失败回调里面setData一个默认的图片,当下载图片失败时用默认图片 注意 下载图片失败时,log里面可能会随机报一...wx.downloadFile遇到损坏的图片,下载失败
说明
小程序获取用户微信头像过程中图片损坏,在使用wx.downloadFile下载图片的时候加上失败的回调,可以在失败回调里面setData一个默认的图片,当下载图片失败时用默认图片注意
下载图片失败时,log里面可能会随机报一个undefined的错误,我遇到的就是下面这个
wx.downloadFile({ url: that.data.httpsUrl + res.data.data.avatar, success: function(res) { // 下载图片成功,临时路径为res.tempFilePath console.log( 'downloadFile 下载图片成功,path=' + res.tempFilePath ); that.setData({ avatar: res.tempFilePath }); }, // 加上失败的回调 fail: function(res) { // 用户头像损坏,头像下载失败,给默认头像 console.log('头像失败', res) that.setData({ avatar: '../../image/vclass/ren7@2x.png' }); } });
-
小程序下载文件报错downloadFile:fail downloadFile protocol must be http or https
2020-03-02 22:54:05今天遇到了一个问题,安卓手机上报这个错误downloadFile:fail downloadFile protocol must be http or https,调试了各种办法一直没有解决,后来发现是因为后台过来的数据有空格,但是又看不出来,最后用trim()去了...今天遇到了一个问题,安卓手机上报这个错误downloadFile:fail downloadFile protocol must be http or https,调试了各种办法一直没有解决,后来发现是因为后台过来的数据有空格,但是又看不出来,最后用trim()去了空格就好了,坑爹啊!!!
-
小程序之下载文件 —— wx.downloadFile
2018-03-29 11:44:00技术文档如下js代码downloadFile:function(){ wx.downloadFile({ url:"https://www.minshu.xin/My/Uploads/2018-03-29/5abc4ca7903ca.jpg", success: function(res){ console.log(res)... -
微信小程序downloadFile使用真机调试无效开发者工具有效
2019-05-20 11:02:02微信小程序的wx.downloadFile Api使用的时候,pc开发者工具有效,移至android手机调试的时候方法内的任何回调都没有执行,判断方法没有执行(真机调试),但是上传至体验版之后神奇的有效了,状况不明 ... -
【填坑】小程序遇到的坑 图片下载 downloadfile合法域名
2018-06-23 16:47:12【填坑】小程序遇到的坑 图片下载 downloadfile合法域名 问题: 做一个电商导购平台的小程序,电商的图片需要下载到用户,用作分享。但是微信小程序的downloadfile方法只能下载配置在 downloadfile合法域名里的... -
微信小程序中wx.downloadFile 中url应如何设置?
2019-07-12 17:25:52微信小程序中调用wx.downloadFile api url路径总是报404,找不到, 请教大神,这个也不需要进后台查询吧  -
微信小程序 使用 wx.downloadFile()方法
2021-01-30 15:24:44wx.downloadFile({ url: // 图片在线 url , success (res) { if (res.statusCode === 200) { // console.log("res.tempFilePath",res.tempFilePath); 微信 临时路径 wx.hideLoading(); that.setData({ '... -
微信小程序中wx.downloadFile API的url问题
2019-07-26 09:27:36首先,先看一下wx.downloadFile官方文档 当中的url是下载资源的路径,从网上查了许多文档,url是文档的路径,尝试了很多次,但路径总会报404,有的说是域名不对,卡死,后来才知道,可以把url设置成可以进后台... -
微信小程序:wx.downloadFile 不成功,没报错 downloadFile:fail Error: socket hang up 错误
2017-01-10 14:02:51小程序刚出来,因为预研需要,很不幸的做了一回小白鼠,于是掉进了神坑。 下载文件,首先是没报错了,然后不成功,这个时候,请把 fail打开,把fail的报错信息输出来 wx.downloadFile({ url: '... -
微信小程序uni.downloadFile保存图片到本地相册
2020-01-29 23:19:24<template> <view class="black"> <image class="cover" mode="widthFix" :src="cover" @longpress="operator"></image> </view> </template> <... ex... -
微信小程序wx.downloadFile下载图片(甄姬)出现格式.unknown的bug
2021-03-30 10:44:49微信小程序调用api wx.downloadFile下载图片(甄姬),有时候会出现格式.unknown的bug 针对这个问题我们可以通过自定义图片名称,并且传入filePath指定文件下载后存储的路径。 let filePath = wx.env.USER_DATA_... -
微信小程序保存图片到相册(wx.downloadFile)
2020-06-19 11:54:48微信小程序图片保存到相册 1、兼容android+ios; 2、支持一次保存多张图片; const app = getApp(); var util = require('../../utils/util.js'); Page({ /** * 页面的初始数据 */ data: { name: '', cardnum: ... -
微信小程序 云存储 wx.cloud.downloadFile 下载并另存
2019-08-29 14:08:59var result = await wx.cloud.downloadFile({fileID: cloudPath}) if (result.statusCode == 200) { wx.getFileSystemManager().saveFile({ tempFilePath: result.tempFilePath, // 传入一个本地临时文件路径, ... -
POI 微信小程序的wx.downloadFile API下载文件
2020-08-11 08:54:28excel报表生成和下载 生成文件并返回下载路径路径 生成文件接口(业务数据没写进去 下方是文件处理代码) String uuid = UUID.randomUUID().toString().replace("-", ""); String fileName = uuid + ".xls";... -
关于微信小程序下载wx.downloadFile在移动端出现“protocol”的问题
2019-03-20 11:34:29小程序迭代时,需要加入一个图片裁剪上传并识别的功能,在PC端调好之后,在移动端不能走通,报了一个奇怪的错误,大概是 “wxfile://***”, 翻译过来的意思就是 wx.downloadFile不支持此协议,看了一下发现wx.... -
微信小程序-wx.downloadFile()文件管理之下载、打开、重命名
2020-07-24 11:36:09微信小程序文件名改写 因为我们的文件名带有中文,导致打开标题转码: 疯狂查阅资料试了好多种方法总算是试出来了: wx.downloadFile({ url: "https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pdf", //源文件地址 ... -
微信小程序:画图不显示,downloadFile使用注意
2019-07-08 16:13:43每个微信小程序需要事先设置通讯域名,小程序 只可以跟指定的域名与进行网络通信 。包括普通 HTTPS 请求( wx.request )、上传文件( wx.uploadFile )、下载文件( wx.downloadFile ) 和 WebSocket 通信( wx.... -
小程序绘制海报 wx.downloadFile下来素材,绘制文字图片
2018-11-08 17:42:42<canvas canvas-id="myCanvas" class="...wx.downloadFile({ url: 'http://192.168.1.240:8080/ypStatic/img/sale/code.jpg', //仅为示例,并非真实的资源 success (res) { ... -
Taro微信小程序报错: downloadFile:fail createDownloadTask:fail url not in domain list
2020-06-18 10:23:58配置好request合法域名和downloadFile合法域名,可以在微信开发工具中:详情->域名信息中查看是否已经配置,若没有配置请登录微信公众号进行配置 url中的前面那部分是域名(https://example.weixin.com) ...