как я могу отобразить изображение, полученное с помощью file_get_contents в php?
Нужно ли мне изменять заголовки и просто эхо или что-то еще?
Спасибо!
как я могу отобразить изображение, полученное с помощью file_get_contents в php?
Нужно ли мне изменять заголовки и просто эхо или что-то еще?
Спасибо!
Нужно ли мне изменять заголовки и просто эхо или что-то еще?
точно.
Отправьте a header("content-type: image/your_image_type");
и данные после этого.
Вы можете использовать readfile и выводить заголовки изображений, которые вы можете получить из getimagesize следующим образом:
$remoteImage = "http://www.example.com/gifs/logo.gif";
$imginfo = getimagesize($remoteImage);
header("Content-type: {$imginfo['mime']}");
readfile($remoteImage);
Причина, по которой вы должны использовать readfile, заключается в том, что он выводит файл непосредственно в выходной буфер, где file_get_contents будет считывать файл в память, который не является необходимым в этом контенте и потенциально интенсивным для больших файлов.
$image = 'http://images.itracki.com/2011/06/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']}");