【发布时间】:2015-06-15 06:52:20
【问题描述】:
我正在尝试上传图像,更改其大小,然后将结果写入 MySQL 数据库。基本代码:
// load original image
$image = imagecreatefromjpeg($file); // load original image
// create new image
$newImage = imagecreatetruecolor($newWidth, $newHeight);
// copy original to new, changing size
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight,$origWidth, $origHeight);
// save new image in database (in a BLOB field)
mysql_query("UPDATE myTable SET Photo='" . mysql_escape_string($newImage) . "' WHERE keyField=2");
但没有存储任何内容。 $newImage 似乎是正确大小的有效图像。我做错了什么?
【问题讨论】:
-
“什么都没有存储”是什么意思?一个空字符串?您是否尝试使用
base64_encode而不是mysql_escape_string? (顺便说一句,根据 PHP 文档,mysql_escape_string已过时)。 -
我的意思是更新操作后BLOB字段为0字节。我尝试过 base64_encode 的结果相同。我知道 mysql_escape_string 已过时并且正在使用 mysqli,但认为使用旧函数对于基本代码会更清晰;结果是一样的。