Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Вывод картинки в браузер |
Автор: The_Aleksey 27.12.2012, 16:25 | ||||
Всем привет! Начну издалека... Есть сайт, где любой зашедший пользователь может загрузить файл, причем только графический. Структура сайта такая, что файлы грузятся в папку, которая лежит на одном уровне с public_html (папкой с файлами сайта). С загрузкой никаких проблем нет, но встает задача отображения загруженного файла в браузере, зная его абсолютный путь, и с тем именем, с которым оно было загружено. Пока только нашел на php.net следующее решение
Тут все классно, но файл предлагается скачать, а мне нужно, чтобы выводился в браузере, с тем именем с которым загружен, т.е. код вида
мне не подойдет. Может быть у кого уже было такое, поделитесь мыслями |
Автор: Fortop 27.12.2012, 16:41 |
header('Content-Disposition: attachment; filename='.basename($file)); Вот это отвечает за то имя, под которым файл будет скачиваться |
Автор: The_Aleksey 27.12.2012, 16:43 |
Это я понимаю, но мне не нужно, чтобы файл предлагалось скачать, а нужно, чтобы он просто вывелся в браузер, и если я правой кнопкой на него нажал, то там вывелось бы его реальное имя |
Автор: ksnk 27.12.2012, 18:04 |
The_Aleksey, Не пробовал, но, imho, может сработать. Если сайт на юниксовом хостинге, то можно сохранять с тем именем, как пришло от пользователя. Нужно только убедиться, что имя файла в utf-8 и не содержит несовместимой с файловой системой грязи. Соответственно ссылка формируется как src=".htmlentities(urlencode($filename), ENT_QUOTES)" или с каким подвывертом - можно посмотреть в http://php.net/manual/en/function.urlencode.php |
Автор: Fortop 27.12.2012, 19:03 |
mod_rewrite или его аналоги и вперед. Под каким именно именем сохранен файл не имеет значения. |
Автор: Aliance 28.12.2012, 10:08 |
Разве за призыв браузер к скачиванию не отвечает заголовок application/octet-stream и если заменить его на, скажем, image/png то будет выводится картинка. |
Автор: The_Aleksey 28.12.2012, 10:48 | ||||||
Спасибо всем за ответы! В общем сейчас получилось пока следующее .htaccess
image.php
content-type пока для тестирования задан жестко, в дальнейшем в зависимости от $ext, я его буду менять. Т.е. если папки images и соответствующего файла в ней не существует (а это заведомо так, т.к. такой папки вообще нет), то передаем имя файла в GET переменной, и там уже дальше его обрабатываем. И если в браузере вбить прямой адрес картинки, то все OK, но если вставить адрес в тег img
то HTTP/1.1 404 Not Found... |
Автор: The_Aleksey 28.12.2012, 11:18 |
тестировал в denwer на винде, загрузил на unix-хостинг, там все отлично работает, видимо какие-то особенности, которые в общем уже не так важны) Еще раз всем спасибо! |