我唯一的问题是当我添加我的jpeg图像时,它在我的数据库中的类型是application / octet stream?
如何让它作为jpeg保留在我的数据库中?
答案 0 :(得分:1)
处理上传时,将文件直接存储在数据库中通常不是一个好主意。尽管存在一种可以存储此类数据的字段,但您的数据库很快就会变得庞大而且查询速度也会变慢。
处理图片上传时,最好的办法是将图像保存为服务器上的文件,并将路径存储在数据库中。您将使用php的move_uploaded_file
函数(查看doc),然后将您在$destination
中使用的move_uploaded_file
变量放入数据库中作为另一段文本。< / p>
编辑:如果您仍想将图像存储在数据库中,我会再次提醒您这是一个坏的,坏的,坏主意,您将不得不创建一个专用的系统检索数据并将其作为图像输出。例如,此文件将被称为getimage.php:
<?php
@mysql_connect("localhost","root","") or
die('Database error');
@mysql_select_db("upload");
$id = isset($_GET['image_id') ? mysql_real_escape_string($_GET['image_id']) : false;
if ($id === false)
die('Invalid image id');
$q = @mysql_query("SELECT img_data, mime_type FROM table_name WHERE id = ".$id);
$row = mysql_fetch_array($q);
if (!row)
die('Image not found');
header("Content-type: ".$row['mime_type']);
header("Content-Transfer-Encoding: binary");
die($row['img_data']);
?>
然后将其用作图像src:
<img src="getimage.php?image_id=1" />