PHP: Как вывести файлы изображений?

Я хотел бы добавить изображения на динамически генерируемую страницу (я использую свою собственную систему шаблонов) с PHP.

ПРИМЕЧАНИЕ. Я регулирую доступ к изображениям по соображениям безопасности.

Папка с изображениями находится над корнем сайта, поэтому недоступна по ссылкам HTML.

Я считаю, что есть метод, в котором PHP возвращает файл в качестве ресурса, указывая тип в заголовке, и (поправьте меня, если я ошибаюсь) функцию, специально предназначенную для этого imagejpeg(),

Посоветуйте, пожалуйста, и, если возможно, напишите простой пример.

0

Решение

Что нужно сделать, чтобы вывести файлы изображений по порядку:

PHP загружает изображение из файла, это file_get_contents или иным образом fopen открыть и получить доступ к самому файлу. Если файл представляет собой определенный файл изображения, вы можете открыть файл с помощью imagecreatefromjpeg() который будет делать это, сгенерировать файл изображения из источника JPEG.

Затем, как только файл загружен из любой точки вашей файловой системы, включая каталоги вне корневого веб-каталога, PHP может выводить данные, полученные в пункте 1, выше, с некоторыми заголовками HTTP и прямой ссылкой на загруженное изображение.

ПРИМЕЧАНИЕ: это означает, что единственным выводом этого файла PHP является изображение,
так что file.php === image.jpg в этом случае.

Итак, краткий пример:

изображение хранится в /home/images/image1.jpg

PHP-файл запускается из /home/site/imagecall.php

Файл PHP говорит:

<?php
if (file_exists('/home/images/image1.jpg')){
$image = imagecreatefromjpeg('/home/images/image1.jpg');
if ($image){
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
}
else {
die("Image could not be loaded");
}
}

Это отправная точка для вас и ни в коем случае не абсолютный ориентир. Проводить исследования.

Полезные ссылки:

http://php.net/manual/en/function.imagecreatefromjpeg.php

http://php.net/manual/en/function.file-get-contents.php

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]