gpt4 book ai didi

php - 未从数据库 PHP LongBlob 接收图像

转载 作者:行者123 更新时间:2023-11-30 00:23:50 25 4
gpt4 key购买 nike

您好,我正在尝试从数据库接收我的图像。我已经可以插入图像,但我不知道是那边出了问题还是我在获取图像时做了什么错误。

插入图片的代码:

    public function Save(){
/*** check if a file was uploaded ***/
if(is_uploaded_file($_FILES['userfile']['tmp_name']) && getimagesize($_FILES['userfile']['tmp_name']) != false)
{
/*** get the image info. ***/
$size = getimagesize($_FILES['userfile']['tmp_name']);
/*** assign our variables ***/
$type = $size['mime'];
$imgfp = fopen($_FILES['userfile']['tmp_name'], 'rb');
$size = $size[3];
$name = $_FILES['userfile']['name'];
$maxsize = 99999999;


/*** check the file is less than the maximum file size ***/
if($_FILES['userfile']['size'] < $maxsize )
{
/*** connect to db ***/
$db = new Db();

/*** our sql query ***/
$sql = "INSERT INTO Foto (image_type ,image, image_size, image_name)
VALUES ('". $type ."',
'". $imgfp ."',
'". $size ."',
'". $name ."');";
$db->conn->query($sql);

$sql = "SELECT * FROM Foto ORDER BY id DESC LIMIT 1;";
$select = $db->conn->query($sql);

$numberofRows = $select->num_rows;

if($numberofRows == 1)
{
while ($oneSelect = $select->fetch_assoc())
{
return $oneSelect;
}
} else {
throw new Exception("Fout");
}


}
else
{
throw new Exception("Bestand is te groot");
}
}
else
{
throw new Exception("Dit extensie is niet ondersteund");
}
}

加载图像的代码:

<?php 
include_once("classes/Db.class.php");
//$id = $_GET['id'];
$id = "33";
$db = new Db();
$sql = "SELECT image, image_type FROM Foto WHERE id = '". $id ."';";
$result = $db->conn->query($sql);
$row = $result->fetch_assoc();
if(sizeof($row) == 2)
{
header("Content-type: ".$row['image_type']);
echo $row['image'];
}
else
{
throw new Exception("Out of bounds Error");
}

?>

最佳答案

您实际上并没有插入图像数据。阅读fopen()函数时,它不返回图像数据,而是返回一个可用于读取或写入文件的文件句柄(例如,使用 fread()fwrite() )。简单的方法是使用 file_get_contents() .

但是请听我的建议,将图像存储在数据库中确实是不好的做法。它们是文件,最好存储在文件系统上(因此得名)。也使服务速度更快,因为无需执行 PHP 请求。将文件名以及可能的文件相对路径存储在数据库中。

关于php - 未从数据库 PHP LongBlob 接收图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23035425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com