我注意到我的html表单(输入类型=文件)仅在phpMyAdmin中通过数据库发送文件名而不是内容。数据库中的blob文件大小小于或小于实际文件大小。因此,当我尝试查看图像时,它只显示文件名。
当我在phpMyAdmin中使用insert选项手动插入图像时,我可以使用php查看图像。可能有什么不对?为什么表中的图像字段只接收和存储文件名而不是内容?
答案 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'] ).'"/>';