我试图显示存储在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)。 –