BLOB存储 - 文件名而不是文件内容

时间:2017-06-23 10:38:07

标签: php mysql phpmyadmin

我注意到我的html表单(输入类型=文件)仅在phpMyAdmin中通过数据库发送文件名而不是内容。数据库中的blob文件大小小于或小于实际文件大小。因此,当我尝试查看图像时,它只显示文件名。

当我在phpMyAdmin中使用insert选项手动插入图像时,我可以使用php查看图像。可能有什么不对?为什么表中的图像字段只接收和存储文件名而不是内容?

1 个答案:

答案 0 :(得分:0)

试用此代码。

用于插入数据库

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$image = addslashes(file_get_contents($_FILES['images']['tmp_name']));
//you keep your column name setting for insertion. I keep image type Blob.
$query = "INSERT INTO products (id,image) VALUES('','$image')";  
$qry = mysqli_query($db, $query);

用于从Blob访问图像

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';