2012-03-26 5 views
1

PHP 5.3.5 및 postgreSQL을 사용하고 있습니다. 나는 데이터베이스에서 이미지를 저장하고 추출하고있다. 저장PHP로 데이터베이스에서 이미지 저장/추출

나는이 일을하고있다 :

$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. 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