2011-06-21 77 views
0

我一直在尝试多种方式来尝试为我的照片库制作缩略图,但由于我找不到调整图片大小的方式,因此我决定尝试将它作为BLOB保存到MySQL它自己的。但是,当我回应它时,它不会让我保存它,并且不会给我任何东西。任何想法如何将它保存到MySQL?您可以将使用imagecopyresized()的图像保存到MySQL吗?

$tmp_img = imagecreatetruecolor($tw,$th); 
imagecopyresized($tmp_img, $im, 0, 0, 0, 0, $tw, $th, $size[0],$size[1]); 
ob_start(); 
imagejpeg($tmp_img); 
$i=ob_get_clean(); 
$fp=fopen($nar,'w'); 
fwrite($fp,$i); 
fclose($fp); 
$filename_thumb=addslashes(file_get_contents($_FILES['nar'])); 
mysql_query("INSERT INTO photos (filename,caption,album,thumbl) 
VALUES ('" . $filename . "','" . $caps . "','" . $_POST['albums'] . "','" . 
$filename_thumb . "')") or die(mysql_error()); 
+0

我建议使用guid作为数据库中的文件名将图像存储在磁盘上。还有,你看着imagecreatefromstring(),你可能不得不求助于输出缓冲来重新捕获最终的图像数据。 – Scuzzy

回答

5

$tmp_img不是一个文件名,它是一个GD图像资源。您必须使用imagejpeg()imagepng()imagegif()之一从中写入图像。

您可以使用临时文件或output buffer来存储图像数据。

+0

谢谢!我会尽力弄清楚。 – SDuke

+0

@AndreKR,我用我尝试过的方式编辑了这个问题,但它仍然不起作用,看看我做错了什么? – SDuke

+0

你想在第6-8行做什么?只需删除它们并用'$ i'替换'file_get_contents($ _ FILES ['nar'])''。 – AndreKR

相关问题