[英]How to display a compessed Blob file from mySQL DB with php
我已經編寫了一個Android應用程序,可以將圖像發送到mySQL數據庫。 在將圖像發送到數據庫之前,我先壓縮它以減少流量:
public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
所以現在我想使用php在我的網站上顯示圖像。 我嘗試使用未壓縮的圖像,並且可以使用以下代碼:
<!DOCTYPE html>
<html>
<body>
<?php
$id = $_GET['id'];
$db = mysqli_connect("localhost","user","pass","db-name");
$sql = "SELECT * FROM tbl_images WHERE id = $id";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['imgdata'] ).'"/>';
?>
</body>
</html>
您能幫我壓縮圖像嗎? 謝謝!
1)通過base64編碼,您壓縮圖像所獲得的任何收益都將丟失。 最好將圖像保留為二進制文件並上傳。
2)最好將文件存儲在文件系統上,而不是在數據庫中存儲base64編碼的字符串。 因此,您將在文件記錄中存儲文件名或文件路徑,並在文件系統上存儲實際的二進制文件。 然后,在圖片標簽中,您只需將源作為上傳文件的路徑即可。
3)您的SQL查詢可以進行SQL注入。 如果我將id參數鍵入為“ 1 OR 1 = 1”,查詢將返回什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.