В этом изображении хранится в базе данных в двоичном формате, и я хочу его получить, он отображается как пустой ящик, я хочу, чтобы изображение отображалось в виде вывода. Может быть некоторая ошибка в функции отображения. Вот код. ..
<?php ini_set('mysql.connect_timeout',300); ini_set('default_socket_timeout',300); ?> <html> <body> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <input type="file" name="image"><br><br> <input type="submit" name="submit" value="upload"> </form> <?php // Create connection $conn = mysql_connect('localhost', 'root', ''); // Check connection if (mysqli_connect_error()) { die("Database connection failed: " . mysqli_connect_error()); } else { echo "Connected successfully"; } //data upload if( isset($_POST['submit'] )) { if(getimagesize($_FILES['image']['tmp_name'])===FALSE)//to get image size { echo "upload image"; } else { $uploads_dir = '/newimages'; $image= addslashes($_FILES['image']['tmp_name']); $name=addslashes($_FILES['image']['name']); $image=file_get_contents($image); $image= base64_encode($image); move_uploaded_file($image, "$uploads_dir/$name"); saveimage($name,$image); displayimage(); //display function is called to display images } } function saveimage($name,$image) { $conn = mysql_connect('localhost', 'root',''); mysql_select_db("project",$conn); $result = mysql_query("insert into images(name,image) values('$name','$image')"); } //display function function displayimage() { $conn = mysql_connect('localhost', 'root',''); mysql_select_db("project",$conn); $result = mysql_query("select * from images"); while($row =mysql_fetch_array($result)) { echo'<img height="100" width="100" src="data:image;base64,'.$row[2].'">'; //to display image } mysql_close($conn); } ?> </body> </html>
Используйте base64_encode
чтобы получить результат желания
echo'<img height="100" width="100" src="data:image;base64,'.base64_encode($row[2]).'">';
Если он не работает, попробуйте это
Создайте файл show_blob_img.php
и разместите там контент ниже
$conn = mysql_connect('localhost', 'root',''); mysql_select_db("project",$conn); // Get ID from url I guess your primary key is id if not then change with that $id = $_GET['id']; $result = mysql_query("select * from images where id="+$id); $row =mysql_fetch_array($result); /*** set the headers and display the image ***/ header("Content-type: image/jpeg"); /*** output the image ***/ echo $row[2]; mysql_close($conn);
И измените свой
echo'<img height="100" width="100" src="data:image;base64,'.$row[2].'">'; //to display image
в
// I guess your first field is id if not then replace it with proper field echo'<img src="show_blob_img.php?id="'.$row[0].' height="100" width="100" />'; //to display image
Примечание .
Вы должны создать другую страницу и сделать этот тип страницы изображением / jpg, чтобы он мог отображать изображение. Эта страница получает идентификатор вашего изображения, чтобы вы могли получить это изображение из базы данных, и вам нужно повторить этот код изображения.
использовать это
while($row =mysql_fetch_array($result)) { echo'<img height="100" width="100" src="../uploads/'.$row['name'].'">'; //to display image }