我的xhtml中有一個畫布元素。我把它轉換成一個base-64編碼的String
,調用了一個toDataUrl()
調用的dataUrl。這將產生以下輸出,截斷清晰:將轉換的Canvas DataURL字節保存到數據庫時Blob損壞
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzQAAAImCAYAAACFG89TAAAgAElEQVR4Xu29C7x/5Zj3 [lots of characters...]"
我想這個圖像發送到我的MySQL數據庫。我的實體中有一個Blob(@Lob)字段,爲了將此字符串轉換爲字節數組,請使用dataUrl.getData()
並使用此字節數組更新我的實體。
在我的MySQL數據庫中,成功創建了BLOB。但是,當我右鍵單擊它並單擊在編輯器中打開文件時,我看到字節選項卡罰款,但收到一個通用的錯誤,當我點擊圖像選項卡,建議字節已損壞。
這意味着,當欲讀取該文件,使用BufferedImage imag = ImageIO.read(is);
其中is
是ByteArrayInputStream
與字節數組作爲參數,返回imag
空,更具體地BufferedImage
類內的方法read
。
編輯:看截圖,第一個是dataUrl.getBytes()
調用,第二個是MySQL輸出。
那麼你在字節選項卡中看到了什麼值?你從dataUrl.getData()中得到了什麼字節?請在每種情況下(比如說)前16個字節編輯您的問題。 –
用此信息更新了我的問題。 – tacua
第一個屏幕截圖實際上並沒有顯示任何數據,是嗎?請展開第一行。 –