как я могу отобразить изображение, полученное с помощью file_get_contents в php?
Нужно ли мне изменять заголовки и просто эхо или что-то еще?
Благодаря!
Нужно ли мне изменять заголовки и просто эхо или что-то еще?
в точку.
Отправить header("content-type: image/your_image_type");
и данные впоследствии.
Вы можете использовать readfile и выводить заголовки изображений, которые вы можете получить из getimagesize следующим образом:
$remoteImage = "http://img.ruphp.com/php/logo.gif"; $imginfo = getimagesize($remoteImage); header("Content-type: {$imginfo['mime']}"); readfile($remoteImage);
Причина, по которой вы должны использовать readfile, заключается в том, что он выводит файл непосредственно в выходной буфер, где file_get_contents будет считывать файл в память, который не нужен в этом контенте и потенциально интенсивен для больших файлов.
$image = 'http://img.ruphp.com/php/favicon.png'; // Read image path, convert to base64 encoding $imageData = base64_encode(file_get_contents($image)); // Format the image SRC: data:{mime};base64,{data}; $src = 'data: '.mime_content_type($image).';base64,'.$imageData; // Echo out a sample image echo '<img src="' . $src . '">';
Вы можете это сделать, или вы можете использовать функцию readfile
, которая выводит ее для вас:
header('Content-Type: image/x-png'); //or whatever readfile('thefile.png'); die();
Изменить: Derp, фиксированная очевидная ослепительная опечатка.
вы можете сделать вот так:
<?php $file = 'your_images.jpg'; header('Content-Type: image/jpeg'); header('Content-Length: ' . filesize($file)); echo file_get_contents($file); ?>
Небольшое редактирование для ответа @seengee: для работы вам нужны фигурные скобки вокруг переменной, иначе вы получите сообщение об ошибке.
header("Content-type: {$imginfo['mime']}");