wxhtmltopdf 图片路径问题_跳坑《一百零一》wx.downloadFile问题

本文详细探讨了微信小程序中使用wx.downloadFile时遇到的问题,包括图片路径问题、domain配置、文件下载与播放、指定文件夹、文件后缀缺失等,并提供了相关讨论和解决方案。
摘要由CSDN通过智能技术生成

c1e97ee427a828f397cf6cb56ff38b38.png这个问题,研究者甚少,以至于相关问题直到今天,仍然属于未知的领域,所以我准备集合所有的知识和资源,来说明这个问题;

本帖将不断聚合跟downloadFile有关的知识和内容,假如你有自己的经验,也欢迎分享出来,可以单独发帖也可以回复在这里,以便方便其他同学学习和参考!

官方文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-file.html#wxdownloadfileobject

假如讨论中有误,欢迎指正,以便修正!

提示一:

downloadFile,需要在小程序公众后台配置相应的downloadFile域名,否则会无法正常使用;

相关讨论一:

Q:我们在微信开发工具,选择图片后,尝试上传或下载图片 都没有任何反应,请问是什么原因?

A:最新版本的开发工具已经支持 uploadFile 和 downloadFile 的调试。

相关讨论二:问题:style的height:auto;不起作用怎么办?图片不能自动缩放

style的height:auto;不起作用怎么办?图片不能自动缩放答:

我使用的是 getImageInfo 接口获取图片宽高然后算出高度渲染的,这里要注意图片如果过多需要使用请求队列,因为这个接口请求网络图片会调用 downloadFile,而小程序有 5 个并发的限制,另外要做好超时后显示错误图片的处理。

相关讨论三:求教怎么实现下载服务器上的图片到手机

现在我用的是wx.downloadFile下载文件,然后用wx.saveFile保存到本地,但是发朋友圈的时候并不能识别出保存的图片文件,求教大神应该怎么实现,也就是发朋友圈的时候能够识别出通过小程序下载的图片文件,谢谢啦。

答:夏晓锋

应该用wx.previewImage,然后长按图片在保存到手机里。

相关讨论四:wx:file//地址不合法,下载到本地的音频文件无法播放在微信小程序中,可以通过 audio 组件播放网络音频资源。现在想将音频先下载到本地,之后不用每次都下载,提高用户体验。使用 wx.downloadFile 接口将音频文件下载后,无法通过 audio 组件或者 wx.playVoice 播放,提示地址URL不合法,请问有没有相应解决方案?如果“wx:file//”地址不合法,那么是不是所有用户下载的音频视频文件都会无法播放啊。请问是我方法错误,还是有更好的解决方案我们不知道

可以试试先download,再savefile,再调用playVoice可以

相关讨论五:

wx.downloadFile 或 wx.saveFile 能指定目标文件夹吗?

小程序 wx.downloadFile 或 wx.saveFile 能指定文件夹吗?‘

比如下载的图片,可以在手机图库中看到吗?

download和save均不可指定路径,因为它们会被保存到小程序的本地存储中

download下来的临时文件没有容量限制,退出后会被清除;save的永久存储限制为100M

另外,目前没有方法能保存到其他目录

相关讨论六:ios设备上 视频无法播放(安卓可以播放,视频是先下载后存储)

先调用wx.downloadFile下载视频文件;

然后调用wx.saveFile存储文件到本地;

返回值都OK;然后设置video组件的src;

测试时候在 微信调试工具和安卓机器上正常,ios设备上返回值也都是ok,但是视频却是黑屏无法播放

问题解决了!微信小程序的视频播放 src 是可以 用外部动态链接的,不需要savefile

相关讨论七:wx.downloadFile保存的文件在哪里

3e89586369b25e63f28da681cc7a4ace.gif

1.jpg (37.62 KB, 下载次数: 113)

2017-2-20 12:26 上传

3e89586369b25e63f28da681cc7a4ace.gif

2.png (33.08 KB, 下载次数: 101)

2017-2-20 12:26 上传

不需要关心下载到哪里(每个环境都不一样),只需要知道根据这个地址可以读取到文件即可

相关帖子:@小西瓜 文件操作测试分享相关讨论:用wx.downloadFile这个函数下载文件时扩展名是空的怎么回事

1、我们下载文件是通过接口 流的方式下载的,但我们下载下来后没有文件扩展名,这个是怎么回事? 我通过浏览器直接访问下载是有扩展名的。

3e89586369b25e63f28da681cc7a4ace.gif

004844q4x6yn9yq4qqjyu6.png (20.03 KB, 下载次数: 89)

2017-4-22 12:10 上传

2、通过wx.openDocument(OBJECT) ,打开WORD文档一直打不开,我写死了一个文件名  手机上预览也是打不开。

拓展名没有应该没什么问题吧,只要下载下来的文件能正常使用即可

工具中会调用系统的默认程序打开word文档,如果系统中没有那也是打不开的,手机打不开请提供下手机系统以及微信版本

新增相关讨论,由@wm_yanyan 提供:downloadFile之后 保存的临时文件是没有后缀名的,但是pc端用浏览器 下载是有的 ;地址是这样的地址:

[AppleScript] 纯文本查看 复制代码https://order.XXXXX.com:8666/Roco/RocoMobileServer/RocoWebService.asmx/downLoadFile?mhId=QEx7WpxDT2toEz7hCTMnUr&fileType=PRICE

我测试过带后缀的url ,下载下来的文件的确是有后缀的

问题已经解决,最后我用IIS的URL rewrite 做了;可以用了

提示:下载的链接必须是带有后缀名的真实链接;否则会下载后没有后缀名;

新增讨论:

downloadFile下载image显示失败 wxfile.open

我目的是下载一张图片,然后显示在image标签里面。

[AppleScript] 纯文本查看 复制代码var ufpath = app.globalData.hostName + vdata.data.filePath;

console.log('down path is ' + ufpath)

wx.downloadFile({

url: ufpath, //仅为示例,并非真实的资源

success: function(res) {

console.log('down down path is ' + ufpath)

console.log('down temp file ' + res.tempFilePath)

var tempimg = res.tempFilePath;

that.setData({

FilePath:tempimg,

// showface:true

})

[AppleScript] 纯文本查看 复制代码

打印日志:

down down  path is

forum.php?mod=viewthread&tid=2988

camera.js [sm]:66 down temp file wxfile://tmp_547422841o6zAJs2O8-DtLIa4JjqF5v2SN6Oob41ba5d358816e21e53aa11cb8f1c943.jpg

VM5393:1 Fri Apr 28 2017 14:22:36 GMT+0800 (CST) 渲染层网络层错误

VM5393:2 Failed to load image

forum.php?mod=viewthread&tid=2988 : the server responded with a status of 404 (HTTP/1.1 404 Not Found)

From server 127.0.0.1

为什么会出现这种错误?

VM5393:2 Failed to load image

forum.php?mod=viewthread&tid=2988 : the server responded with a status of 404 (HTTP/1.1 404 Not Found)

From server 127.0.0.1

答:Lucifer

问题我找到了,是因为src的url最后带了一个回车符\n,造成了错误。这个问题不容易发现,而且开发工具显示的是下载成功了,渲染错误。

新增案例:wx.downloadFile 返回文件路径格式为unknownwx.downloadFile 返回文件路径格式为unknown

3e89586369b25e63f28da681cc7a4ace.gif

1.jpg (129.34 KB, 下载次数: 83)

2017-5-2 17:44 上传

3e89586369b25e63f28da681cc7a4ace.gif

0.jpg (58.42 KB, 下载次数: 77)

2017-5-2 17:44 上传

提示:下载的链接必须是带有后缀名的真实链接;否则会下载后没有后缀名;

westlife:我知道了 ,它就是读取不了格式多传个参数就可以把name传过去就可以了:

3e89586369b25e63f28da681cc7a4ace.gif

11.png (27.76 KB, 下载次数: 85)

2017-5-2 17:45 上传

相关讨论:

downloadFile verify first certificate

下载文件出现

downloadFile:fail Error: unable to verify the first certificate

已经安装 ssl证书,并且wx.request正常,就是下载文件一直提示这个

答:永搏

苹果手机不报错,但是没有声音,根据接口,是走的success

安卓直接报  hand shake error那个错

上面的

downloadFile:fail Error: unable to verify the first certificate

是工具报的错

已经解决 用的tomcat8 改成 protocol="org.apache.coyote.http11.Http11NioProtocol “  就好了相关讨论:问题:

wx.downloadFile 下载pdf失败

点击pdf进行下载,但是提示的是 downloadFile:fail wxceed max file size .

wx.downloadFile 限制的文件大小是多少呢? 文档中没有提供说明。

还有能官方提供一下 返回的错误提示 集合吗? 不然有些错误都不知道怎么查找

答;Can官方

10M

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值