Так что есть эта веб-страница, где этот парень смог вернуть необработанные изображения с сервера
просто введя идентификатор в качестве параметра.
http://photos.iitm.ac.in/byid.php?id=008576
даже если вы щелкнете правой кнопкой мыши по изображению и откроете новую вкладку, откроется только php.
Кто-нибудь знает, как ему это удалось?
Мне нужна такая функциональность для фото профиля
Это довольно просто. Вам просто нужно отправить данные с правильным типом контента. Так что если вы хотите показать gif-изображение, просто используйте:
Header("Content-Type: image/gif");
а затем отправить данные изображения.
Вы можете сделать так:
Предположим, пример URL:
http://www.example.com/getImage.php?id=20
Итак, на странице getImage.php получите информацию об изображении пользователя из базы данных и укажите источник изображения:
Код должен быть таким:
$userImageName="testImage.gif"; //FROM DATABASE FOR id=20, Just for example
ob_clean(); //CLEAN THE OUTPUT BUFFER
header("Content-Type: image/gif"); //SET PAGE HEADER FOR IMAGE
echo file_get_contents('imageDirectory/'.$userImageName);
die;
Хотя это не прямой ответ на заданный вопрос, так как на него уже отвечали другие люди, я думаю, что все же стоит упомянуть.
Вы также можете контролировать имя файла, которое появляется при попытке сохранить изображение! Для этого используйте следующий заголовок:
header('Content-Disposition', 'inline;filename=my_image_title.jpg');
так что ваш скрипт выглядит так:
header('Content-Disposition: inline;filename=my_image_title.jpg');
header('Content-Type: image/jpeg');
readfile($pathToImage);
//or echo $imageContent
Просто убедитесь, что вы ничего не выводили случайно, прежде чем сделать первый вызов header()
в противном случае вы можете получить ошибку «заголовки уже отправлены».