精华

困扰我许久的“图片组件”的src路径问题。

  • • 发表于 8年前
  • • 作者 Roluce
  • • 25071 人浏览
  • • 8 条评论
  • • 最后编辑时间 8年前
  • • 来自 [问 答]
  • • 专栏  [精品问答]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

获得的临时图片,或者保存后的图片,如何直接在<image/>组件显示出来? **

已知的方法:先上传到服务器,然后用http://服务器/abc.jpg的链接显示。

能不能不上传到服务器,直接在用wxfile://xxx 直接或经过处理在<image />组件显示呢?

网友说:

你在data那里设个图片路径的变量,然后使用setData把临时路径更新到变量里,在在模板中的image里面使用

我:

我这样做了,不过这个临时路径自动变成如下http://


文档明明写着可以,也许是腾讯自己的bug吧,没处理好

总结与猜测

假设小程序已经发布,提供用户使用。
用户在使用时,想替换下自己个人中心的“背景图片”(假设小程序提供这功能)。


他会这样操作:

->1:在相册选中图片(wx.chooseImage返回临时图片路径)
->2:点击“预览”(<image />组件显示临时的图片路径)
->3:他感觉满意,点确定设置这张背景(wx.uploadFile上传到服务器持久化保存,下次登录也这样)


重点看第2步:(用临时图片路径显示到<image/>组件的过程)

实验发现(见下图):

返回的是:
wxfile://tem_xxxxxxxxxxxxx

真正在<image />的src的调用的却是:
http://2109377157.debug.open.weixin.qq.com/pages/tes............jpg


过程猜测

1:setData({img_url:chooseImage得到的图片临时路径 })

官方文档已经说明,此临时图片路径可以在<image/>组件显示,但是<image/>只支持http://网络图片,不支持wxfile://的图片,怎么办呢?于是有了操作2

2:微信服务器把这个“临时路径”上传到他自己的服务器(http://2109377157.debug.open.weixin.qq.com)


3:<image />组件的src再调用“他自己服务器刚上传的这个图片的http路径”
即:http://2109377157.debug.open.weixin.qq.com/pages/xx...........x.jpg


但是!!!

官方在这个环节出现了bug,没处理好这个上传到自己服务器的链接,所以没显示!!


猜测2:

通过如下官方接口的注释及实验猜测:

<image />只可显示http://路径的图片
setData“临时图片路径数据”到<image />的src,他也会自动上传到微信服务器转换成http://路径的图片,然后再显示(这点官方文档没说!~)


我是这样认为的,感觉各路大哥、大神就纠正!~

分享到:

1人打赏积分

茂茂
Roluce
Roluce 2016-12-08 11:27:03.0
JeremyLu
JeremyLu 2016-12-08 11:38:57.0

@Roluce 在看 以前写的图片上传TM不能用了 之前资源路径没有wxfile://这个定西 也没有后缀名

Roluce
Roluce 2016-12-08 11:46:30.0

@JeremyLu 之前没玩过,刚学习不久。我此贴更新了些。
我估计是腾讯自己的bug吧,没处理好。。嘿嘿,也许。

JackLi
JackLi 2016-12-09 13:55:06.0
Roluce
Roluce 2016-12-09 16:20:25.0

@JackLi 好的,谢谢~

ouydqq
ouydqq 2017-05-03 12:53:31.0

我也很绝望啊

别弄翻我的酒
别弄翻我的酒 2020-03-05 14:42:35.0

小程序的页面有点像模板引擎

夜恋幽梦丿忆永恒
夜恋幽梦丿忆永恒 2020-05-04 19:52:59.0

正在学习中

8条评论
我来说两句...
x
 
Ctrl+Enter
作者

Roluce

Roluce

APP:0 帖子:50 回复:112 积分:3610

已加入社区[3106]天

山东_聊城_qq:635068

作者详情》