как я могу отобразить изображение, полученное с помощью file_get_contents в php?
Мне нужно изменить заголовки и просто повторить их или что-то в этом роде?
Спасибо!
как я могу отобразить изображение, полученное с помощью file_get_contents в php?
Мне нужно изменить заголовки и просто повторить их или что-то в этом роде?
Спасибо!
Мне нужно изменить заголовки и просто повторить их или что-то в этом роде?
точно.
Отправьте 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 будет считывать файл в память, что не нужно для этого содержимого и потенциально интенсивно для больших файлов.
Вы можете сделать это или использовать функцию 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']}");