2011-06-21 46 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

相關問題