0

我实现了以下图像调整器:http: //www.white-hat-web-design.co.uk/blog/resizing-images-with-php/

现在我想将上传的图像插入数据库。

include('simple_image.php');
$image_rez = new SimpleImage();
$image_rez->load($file);
$image_rez->resizeToWidth(990);
$image_rez->save($image_name.'.jpg');

$sql = "INSERT INTO
            `Media_images` (`ID`,`Name`,`Image`,`Size`)
        VALUES
            (?, ?, ?, ?)
        ";

$stmt = $db->prepare($sql);

if (!$stmt) {
    echo 'Datenbankfehler\n';
    echo $db->error;
}

$stmt->bind_param('ssss', $_POST['id'], $image_name, (string)$image_rez, $image_size);

if (!$stmt->execute()) {
    echo 'Datenbankfehler\n';
    echo $stmt->error;
}

//Cache löschen
destroy(PATH);
//Redirekt wenn erfolgreich eingetragen
header("location:../../index.php?section=media");
die;

但我收到以下错误:

可捕获的致命错误:SimpleImage 类的对象无法转换为字符串。

Error-Line 是我绑定 $image 的地方。如何将此对象转换为字符串?尝试强制转换 (string)($image_rez) 但没有成功。

4

1 回答 1

1

$image_rez 将是一个图像,最好将其作为 blob 存储在数据库中。将 bind_param 中的类型更改为 b,并删除(字符串)。

此外, $image_rez 不是图片,而是您的整个 SimpleImage 对象。您应该在绑定中使用 file_get_contents($image_name.'.jpg') 而不是 $image_rez。

注意:数据库不是存储图像的正确位置。您应该将它存储在文件系统上,并带有存储在数据库中的图像的路径。

于 2012-06-11T16:13:00.243 回答