1

PHP 5.3.5 と postgreSQL を使用しています。データベースから画像を保存および抽出しています。

保存のために私はこれをやっています:

 $escaped_data = base64_encode(file_get_contents($_FILES['fileUpload']['tmp_name']));
 $fileModel->setBinary_Data($escaped_data);

動作しています。データベース (Bytea フィールド) で画像を受け取りました。

問題はこれを抽出することです。私はこのコードで画像を抽出しようとしています:

$file_info = $fileModel->getBinary_Data($id_file); // This function return the binary_data of the image

header('Content-Type: image/jpeg;base64');
header('Content-Disposition: attachment; filename=' . $file_info['_name']);
base64_decode($file_info['binary_data']));

画像をダウンロードしたら、画像が表示されません...

エコーイン:

echo base64_decode($file_info['binary_data']);

これが起こります:

http://imageshack.us/f/18/encodez.jpg/

その後、base64_decode 内で stream_get_contents 関数を使用しようとしていますが、機能しません。

PHPで画像をダウンロードする方法を知っている人はいますか?

とにかくありがとう...

4

1 に答える 1

0

明らかに、カスタムgetBinary_Data()は $file_info['binary_data'] を文字列ではなくリソースとして返します..関数を変更するか、使用しますbase64_decode(file_get_contents($file_info['binary_data'])));

そして、あなたも使ってみてくださいfclose($file_info['binary_data']);

PS Postgre にはバイナリ データの BLOB タイプはありませんでしたか?

于 2012-03-26T22:35:30.680 に答える