我希望这是一个简单的,我使用mySQL和php使用此代码将图像上传为BLOB类型:
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
这一切都正常,插入数据库和一切。然后我想使用SimpleImage:http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/
在上传之前对图像执行一些调整大小和压缩工作。我看不出如何结合说:
include('SimpleImage.php');
$image = new SimpleImage();
$image->load($_FILES['userfile']['tmp_name']);
$image->resizeToWidth(150);
$image->output();
使用我现有的代码,我认为我想要做的就是获得$ content成为$ image,但我已经尝试了一段时间而无法找到一种方法。任何帮助非常感谢。
对所有喜欢圣诞节和TIA的人来说,快乐的圣诞节。
答案 0 :(得分:1)
您正在将已调整大小的图像输出到浏览器(::output()
),但您没有保存它。如果要将其存储在数据库中,则需要先更改临时文件,例如使用::save()
的{{1}}函数。
接下来,您写道要在上传之前在浏览器中调整图片大小。使用PHP无法做到这一点,但仅限于支持该功能的javascript和浏览器。另外,PHP端的上传处理可能会有所不同。但是我不确定你是否真的认为在上传之前图像已经调整。
我的另一个想法是使用输出缓冲区:
SimpleImage