gpt4 book ai didi

php - 在 Wordpress 中使用 PHP 制作缩略图然后另存为 Blob

转载 作者:行者123 更新时间:2023-11-29 09:19:45 25 4
gpt4 key购买 nike

下面的代码看起来应该可以工作;但是,数据库中的 Blob 仅在运行函数后包含0。下面的代码看起来准确吗?如果没有我该如何解决?

$tmpName  = $_FILES['picture']['tmp_name'];

$fp = fopen($tmpName, 'r');
$binary = fread($fp, filesize($tmpName));
fclose($fp);

$originalImage = imagecreatefromstring($binary);
$tempImage = imagecreate(100,100);
imagecopyresized($tempImage,$originalImage,0,0,0,0,100,100);
ob_start();
imageJPEG($tempImage);
$thumbnail = ob_get_contents();
ob_end_clean();

$wpdb->query("UPDATE ".$wpdb->prefix."items SET picture = $thumbnail WHERE id=$id'");

谢谢:)!

最佳答案

您可能希望将 blob/图片数据以十六进制形式发送到数据库,因为这是最有效的方法:

if ( is_uploaded_file($_FILES['picture']['tmp_name']) ) {
$originalImage = imagecreatefromjpeg($_FILES['picture']['tmp_name']);
$thumbImage = imagecreatetruecolor(100, 100);
imagecopyresized($thumbImage, $originalImage, 0, 0, 0, 0, 100,100);

imagedestroy($originalImage); // Free the memory as soon as possible

ob_start();
imagejpeg( $thumbImage, NULL, JPEG_QUALITY);
$thumbData = ob_get_contents();
ob_end_clean();

imagedestroy($thumbImage);


$wpdb->query("UPDATE ".$wpdb->prefix."items SET picture = x'".bin2hex($thumbData)."' WHERE id=$id'");
}

注意x'".bin2hex($thumbData)."'x将字符串的内容标记为十六进制。

请注意:
关于将图像存储在数据库中是否是个好主意存在很多争论。普遍的共识是这是一个坏主意,除非:

  1. 您的图片大小小于 2MB
  2. 您打算不再存储总共 1GB 的空间(即使达到 1GB,您也会对其进行拉伸(stretch))。

在所有其他情况下,请将图像存储在磁盘上并将所述图像的位置存储在数据库中。

关于php - 在 Wordpress 中使用 PHP 制作缩略图然后另存为 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484469/

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