#php #html #image #png
#php #HTML #изображение #png
Вопрос:
У меня есть изображение PNG, расположенное за пределами public_html. Я хочу поместить это изображение в <img>
тег. Кто-нибудь знает, как это сделать с помощью php?
Комментарии:
1. Упс. Я имел в виду тег < img > .
2. Это невозможно напрямую. Вам либо нужно использовать
.htaccess
правило для внутреннего направления URL-адреса, либо использовать PHP-файл для чтения содержимого файла и его эхо.
Ответ №1:
У вас может быть посредник, который выводит изображение, отправляя правильные заголовки:
<?php
$path = '/some/sanizied/path.png';
header( 'Content-Type: image/png' );
// other headers like Length are nice, too.
readfile( $path );
Существуют также заголовки X-Sendfile и X-Accel-Redirect, которые могут указывать вашему веб-серверу доставить другой файл. Это устраняет некоторые накладные расходы PHP.
Комментарии:
1. Прохладный. Просто примите некоторые меры предосторожности, если вы позволяете пользователю указывать путь в URI. Например, запустите realpath() по предполагаемому пути и убедитесь, что результат находится внутри ожидаемого каталога.
Ответ №2:
я думаю, что вы действительно задаете простой HTML-вопрос, хотя мне нужно было бы увидеть ваш фактический код, чтобы дать вам точный ответ.
Если файл изображения png находится в другом расположении файла / каталога, ваш код может выглядеть примерно так.
<img src='../file2/happy.png' alt='happy' />
Вышеописанное поднимется на уровень каталога, затем перейдите в папку «file2» и укажите там на файл изображения happy.png.
Ничего общего с php, когда дело доходит до указания местоположения каталога файла изображения, если только вы не пытаетесь динамически создавать местоположение, которое регулярно меняется.
Комментарии:
1. Все файлы
public_html
доступны через корень веб-сайта.../../../../
в корне веб-сайта указывает на корень, который является тем жеpublic_html
каталогом.2. Это не сработает, потому что папка не находится в public_html.