2012-03-26 11 views
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でダウンロードする方法を知っていますか?とにかく

おかげで...

+0

ファイルシステムにファイルを保存しない理由は何ですか? –

+0

はい、データベースに画像を保存する必要があります。これはOCRシステムを実装するためです。そして、OCRシステムは、データベース内の画像を読み取る必要がある。 – KillCloud

+0

誰かに別の解決策がありますか? – KillCloud

答えて

0

まあ、明らかにカスタムgetBinary_Data()戻っ$ file_info [「binary_data」]リソース、文字列ではありません...ので、どちらかの機能を変更したり、base64_decode(file_get_contents($file_info['binary_data'])));

を使用し、しようとしてあまりにもfclose($file_info['binary_data']);を使用してください。

P.S. postgreにバイナリデータのBLOB型がありませんでしたか?

+0

file_get_contentsと同じエラーメッセージが表示されました。「file_get_contents()は、パラメータ1が文字列、リソースが指定されていると見なします」 – KillCloud

+0

「stream_get_contents($ file_info ['binary_data']) ' –

+0

それは動作していますが、ダウンロードのためにイメージが壊れています。私のコードの下に:echo base64_decode(stream_get_contents($ file_info ['binary_data'])); – KillCloud

関連する問題