У меня проблема с печатью сохраненных данных изображения в Drupal CMS.Страница результатов получает 6-байтовый контент, а не загруженные данные моего изображения.
Код хранения изображения:
// Read content of the uploaded file
$file_content = file_get_contents($_FILES["image_field"]["tmp_name"]);
// Strore the file in the session
$_SESSION['session_image'] = $file_content;
Затем на другой странице я печатаю данные, сохраненные в сеансе.Код:
// Set content type - octet-stream
header("Content-type: application/octet-stream");
// Print the session stored image back
echo $_SESSION['session_image'];
// Exit
exit;
Я не хочу использовать в качестве решения следующие действия:
- Хранить загруженный файл во временном местоположениии подайте его.
- Измените тип содержимого на другой
Я хочу напечатать содержимое загруженного файла так, как оно есть в браузере(как поток октетов).Я очень признателен, если кто-нибудь может помочь в этом.
Обновленный код:
// Read content of the uploaded file
$file_content = file_get_contents($_FILES["image_field"]["tmp_name"]);
// Strore the file in the session
$_SESSION['session_image'] = base64_encode($file_content);
// Modified to have base64 encoded content to store so decode it here
$content = base64_decode($_SESSION['session_image']);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ". mb_strlen($content, 'latin1'));
// Set content type - octet-stream
header("Content-type: application/octet-stream");
// Print content
echo $content;
exit;
Но все равно содержимое изображения не видно.Некоторые символы содержимого изображения преобразуются в другие при сравнении загруженного содержимого изображения и исходного содержимого изображения.