2011-06-21 4 views
0

私は自分のフォトギャラリーのサムネイルを作成しようと試みてきましたが、BLOBである間に画像のサイズを変更する方法が見つからなかったので、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

DB内のファイル名としてguidを使用してディスクにイメージを格納することをお勧めします。また、imagecreatefromstring()を見て、最終的な画像データを再キャプチャするために出力バッファリングに頼らなければならないかもしれません。 – Scuzzy

答えて

5

$tmp_imgはファイル名ではなく、GDイメージリソースです。 imagejpeg(),imagepng()またはimagegif()のいずれかを使用して、イメージを書き込む必要があります。

一時ファイルまたはoutput bufferを使用して、イメージデータを保存できます。

+0

ありがとう!私はそれを理解しようとします。 – SDuke

+0

@AndreKR、私は何を試して質問を編集しましたが、それでもうまくいきませんでした。 – SDuke

+0

6-8行目で何をしようとしていますか?それらを削除し、 'file_get_contents($ _ FILES ['nar'])'を '$ i'に置き換えてください。 – AndreKR

関連する問題