Хранение / Извлечение изображений из базы данных с помощью php - PullRequest
1 голос
/ 27 марта 2012

Я использую 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/

После этого я пытаюсь использовать функцию stream_get_contents внутри base64_decode, но не работает.

Кто-то знает, как я могу загрузить свои изображения с помощью php?

В любом случае, спасибо ...

1 Ответ

0 голосов
/ 27 марта 2012

Ну, очевидно, ваш пользовательский getBinary_Data() возвращает $ file_info ['binary_data'] в качестве ресурса, а не строки .. поэтому либо измените функцию, либо используйте base64_decode(file_get_contents($file_info['binary_data'])));

И попробуйте тогда тоже использовать fclose($file_info['binary_data']);.

P.S. Разве в postgre не было типа BLOB для двоичных данных?

...