xhtml に canvas 要素があります。これを base-64 でエンコードさString
れた dataUrl というtoDataUrl()
呼び出しに変換します。これにより、次の出力が生成されますが、わかりやすくするために切り捨てられています。
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzQAAAImCAYAAACFG89TAAAgAElEQVR4Xu29C7x/5Zj3 [lots of characters...]"
この画像を MySQL データベースに送信したいと考えています。エンティティに Blob (@Lob) フィールドがあり、この文字列をバイト配列に変換するには、dataUrl.getData()
このバイト配列を使用してエンティティを更新します。
私の MySQL データベースでは、BLOB が正常に作成されました。ただし、それを右クリックして [エディターでファイルを開く] をクリックすると、[バイト] タブは正常に表示されますが、[画像] タブをクリックすると一般的なエラーが表示され、バイトが何らかの形で破損していることを示唆しています。
これは、このファイルを読みたいときに、バイト配列を引数としてBufferedImage imag = ImageIO.read(is);
where is
is を使用すると、 null、より具体的にはクラス内のメソッドを返すことを意味します。ByteArrayInputStream
imag
read
BufferedImage
編集: スクリーンショットを参照してください。1dataUrl.getBytes()
つ目は呼び出し、2 つ目は MySQL の出力です。