小程序image src 無法使用選中的圖片地址

獲得的臨時圖片,或者保存後的圖片,如何直接在<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://路徑的圖片,然後再顯示(這點官方文檔沒說!~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章