我試圖顯示存儲在mysql數據庫中的圖像。 我保存這樣說:顯示圖像從PHP文件(存儲在MySQL數據庫)
if (isset($_SESSION['mod']) && (isset($_GET['upload']))) {
if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) {
$con = mysql_connect("localhost", "root");
mysql_select_db("psi", $con);
// Temporary file name stored on the server
$tmpName = $_FILES['image']['tmp_name'];
// Read the file
$fp = fopen($tmpName, 'r');
$data = fread($fp, filesize($tmpName));
$data = addslashes($data);
fclose($fp);
//now i use <tmpName> as an actual name of file
$tmpName = $_FILES['image']['name'];
if (isset($_GET['name']))
$tmpName = $_GET['name'];
$uname = $_SESSION['uname'];
$idObj = mysql_query("SELECT id_object AS id FROM tobject WHERE uname = '$uname'");
$idObj = mysql_fetch_assoc($idObj);
$idObj = $idObj['id'];
// Create the query and insert
// into our database.
$query = "INSERT INTO slike ";
$query .= "VALUES ('', '$idObj', '$data', '$tmpName')";
$results = mysql_query($query, $con);
// Print results
print "Thank you, your file has been uploaded.";
}
else {
print "No image selected/uploaded";
}
}
我想這是確定..它確實店東西在DB(合適的大小),但我看不出它是手動的..所以, ,當我嘗試使用此代碼獲取它:
else if (isset($_GET['idSlike'])) {
$idSlike = $_GET['idSlike'];
$con = mysql_connect("localhost", "root");
mysql_select_db("psi", $con);
$res = mysql_query("SELECT slika FROM slike WHERE id_slika = '$idSlike'");
if (!$res) {
die("greska: " . mysql_error());
};
$slika = mysql_fetch_array($res);
$slika = $slika['slika'];
header('Content-Type: ' . $slika['mimetype']);
echo $slika;
}
注:兩個存儲和從數據庫中獲取圖像都在同一個文件 (image.php)...
我不明白什麼... 我試圖顯示它:
<img src="image.php?idSlike=10"/>
我硬編碼的ID,但是他們在數據庫中存在
我也試圖與
echo "<img src=\"image.php?idSlike=13\">";
通過另一個php文件,但我得到的是一個空的圖像(與正確的src)
我使用xampp(mysql 5.5.16; PHP 5.3.8)...
除了你的問題在你的問題陳述;看看SQL注入。你的腳本很脆弱! – stUrb
感謝提及..我看着它.. :) – maricn
請不要用古老的'mysql_ *'函數編寫新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這裏是一個很好的PDO相關教程](http://goo.gl/vFWnC)。 –