簡體   English   中英

將base64編碼的dataURI圖像插入MySQL BLOB字段

[英]Inserting base64 encoded dataURI image into MySQL BLOB field

我正在嘗試將base64編碼的dataURI圖像(通過Ajax:post發送)成功插入MySQL表的BLOB字段中。 當前正在填充該字段,但是當我顯示圖像時,它已損壞。

數據通過Ajax發送沒有問題。

這是我的PHP代碼(簡體):

$encodedData = filter_var($_POST['encodedData'], FILTER_SANITIZE_STRING);
$encodedData = str_replace(' ','+',$encodedData);
$encodedData = substr($encodedData, strpos($encodedData, ",") + 1);
$decodedData = base64_decode($encodedData);
$doinsertphoto = mysql_query("INSERT INTO subscriber_photo (SubscriberId, Photo) VALUES ('" . $subscriber_id . "', '" . mysql_real_escape_string($decodedData) . "')") or die(mysql_error());

如果您在http://php.net/manual/en/function.base64-encode.php上閱讀了base64_encode的PHP手冊,則可以看到此函數返回字符串類型date,並且MySQL Blob數據類型字段用於存儲二進制數據,因此您嘗試將String(ASCII)代碼保存到二進制數據中,這就是問題所在。

您無需編碼即可將圖像二進制內容保存為blob類型,或者使用varchar或text類型保存編碼數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM