我已經修剪我的代碼到最低限度,試圖找出爲什麼我不能顯示任何圖像,我通過PHP上傳到MySQL的任何圖像。如果有人能指出我的錯誤,我會非常感激。無法顯示通過PHP上傳的圖像到MySQL
執行時,瀏覽器報告圖像不能顯示,因爲它包含錯誤。
但是,圖像上傳&在同一環境中運行的其他數據庫中顯示正常。
我已檢查數據庫上傳後是否保留有斑點。
我想我錯過了一些明顯的東西。
上傳的形式..
<body>
<form enctype="multipart/form-data" action="imagetestprocess.php" method="post">
<input type="file" name="image">
<input type="submit" value="Submit">
</form>
表單處理程序..
<?php
include("../mylibrary/login.php");
login();
$imagefile = file_get_contents($_FILES['image']['tmp_name']);
$imagefile = mysql_real_escape_string($imagefile);
$query="UPDATE pieces SET image_full='$imagefile' WHERE assetno='1'";
$result = mysql_query($query);
?>
圖像顯示器..
<?php
include("../mylibrary/login.php");
login();
echo "<body>";
echo "before";
echo "<img src=\"showimage.php\" alt=\"showimage\">";
echo "after";
?>
調用的函數...
<?php
include("../mylibrary/login.php");
login();
$query = "select * from pieces where assetno='1'";
$result=mysql_query($query);
$row=mysql_fetch_array($result, MYSQL_ASSOC);
$image=$row['image_full'];
header("Content-type: image/jpeg");
echo $image;
?>
嗨,謝謝你的回覆。 image_full字段已經是mediumblob。 Did you mean .. $ imagefile = chunk_split(base64_encode(file_get_contents($ _ FILES ['image'] ['tmp_name']))); 恐怕沒有什麼區別。 – Paul 2012-02-09 10:03:42
midiumblob很好。並且編碼會對您的file_get_content進行編碼,因此您不會遇到垃圾字符問題.chunk_split會將字符串拆分爲更小的塊,以便在字符串較大時閱讀圖像內容。 – 2012-02-09 11:46:56