当前位置:   article > 正文

wx.getImageInfo() 返回结果的属性临时路径path后缀为.unkown的解决办法_uni.getimageinfo path没有返回文件后缀

uni.getimageinfo path没有返回文件后缀

wx.getImageInfo() 返回结果的属性临时路径path后缀为.unkown的解决办法

 

问题描述

本人做后台开发,公司有个需求把一个下载链接生产二维码在小程序端显示,提供用户保存。由于这下载链接会随时变化,我不想把二维码保存到服务器,再用资源访问的方式去浏览,所有我直接把二维码以流的形式输出,在服务器不作保存,懒得再写个定时器去定时删除过期二维码。

然而懒惰总要付出代价的,公司前端告诉我:二维码无法正常保存!

然后我做了测试,在小程序里通过img标签是完全可以显示二维码的,iphone上也可以完美保存二维码,但在安卓机上显示二维码保存失败,报错信息saveImageToPhotosAlbum:fail invalid file type。然后打印wx.getImageInfo()的返回值,path后缀居然为.unkown,导致安卓端的wx.saveImageToPhotosAlbum()无法识别图片类型,瞬间无语了。看图:

  1. wx.getImageInfo({
  2. src: 'https://域名/项目名/qrcode.action?openId=oxGbN4lm5s&ids=15252&type=buyer',
  3. success(res) {
  4. wx.saveImageToPhotosAlbum({
  5. filePath: res.path,
  6. success(res) {
  7. wx.showToast({
  8. title: '保存图片成功!',
  9. })
  10. },
  11. fail(res) {
  12. wx.showToast({
  13. title: '保存图片失败!',
  14. })
  15. }
  16. })
  17. }
  18. })

ps:代码是为了说明问题随手写的测试代码!!!

 

解决办法

经过几次试验我发现,只要wx.getImageInfo() 的src是以图片格式结尾,安卓就可以正常获取照片信息,然后通过wx.saveImageToPhotosAlbum()保存。我就设想能不能仿照一个以图片格式结尾api,但把.action结尾的接口改为.jpg、.png、.jpeg结尾是不现实的,我也不想被人笑话,所有就有了大胆的想法。

随便加个服务器后台不接收参数名在接口的末尾,令它等于.jpeg(可以改为其他格式),例如:

https://域名/项目名/qrcode.action?openId=oxGbN4lm5s&ids=15252&type=buyer&name=.jpeg

整端代码就是

  1. wx.getImageInfo({
  2. src: 'https://域名/项目名/qrcode.action?openId=oxGbN4lm5s&ids=15252&type=buyer&name=.jpeg',
  3. success(res) {
  4. wx.saveImageToPhotosAlbum({
  5. filePath: res.path,
  6. success(res) {
  7. wx.showToast({
  8. title: '保存图片成功!',
  9. })
  10. },
  11. fail(res) {
  12. wx.showToast({
  13. title: '保存图片失败!',
  14. })
  15. }
  16. })
  17. }
  18. })

完美解决问题!!!

写得不好,仅供参考!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/675157
推荐阅读
相关标签
  

闽ICP备14008679号