iT邦幫忙

0

前端無法顯示從資料庫抓取的圖片資料

  • 分享至 

  • xImage

前端:React
後端:Node.js
資料庫:MySQL
這是我React抓資料的程式碼
https://ithelp.ithome.com.tw/upload/images/20230108/201567847uCkegbTjw.png
抓到資料後用map顯示
https://ithelp.ithome.com.tw/upload/images/20230108/201567840J2vVo99BT.png
這是我nodejs的程式碼
https://ithelp.ithome.com.tw/upload/images/20230108/20156784ndVt6U3J6x.png
userimg是我mysql放圖片的欄位
我抓到資料後console.log出來發現檔案類型是Buffer Array
https://ithelp.ithome.com.tw/upload/images/20230108/201567841gXkVz1mLP.png
然後我就先轉成blob在FileReader生成DataURL在指定給img的src
https://ithelp.ithome.com.tw/upload/images/20230108/20156784kvYuxS7VQc.png
可是出來的畫面就長這樣
https://ithelp.ithome.com.tw/upload/images/20230108/20156784SeusPfIyjE.png
想請教我是哪裡有做錯甚麼嗎?為什麼都有DataURL了圖片還是不出來?
如果我有說明不清楚的部分請告訴我,我再補充

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
淺水員
iT邦大師 6 級 ‧ 2023-01-08 18:40:58
最佳解答

嘗試解出你的 dataurl

atob('W29iamVjdCBPYmplY3Rd');
// 結果是: [object Object]

判斷應該要把 val.userimg 改成 val.userimg.data

var blob = new Blob([val.userimg.data], "image/jpeg");

這樣子感覺DataURL有比較正常了可是還是顯示不出來https://ithelp.ithome.com.tw/upload/images/20230108/201567845gTB1VKhhi.png

淺水員 iT邦大師 6 級 ‧ 2023-01-08 20:26:06 檢舉

漏掉要轉 TypedArray,參考 blob() 建構式

var u8Arr = new Uint8Array(val.userimg.data);
var blob = new Blob([u8arr], "image/jpeg");

成功了!!
非常感謝你這真的困擾我很久

我要發表回答

立即登入回答