Извлечение изображения с FTP на веб-страницу
У меня есть папка на моем ftp-сервере, которая содержит несколько изображений. Я пытаюсь получить доступ и показать эти изображения на веб-странице, например
<img src="ftp://my_ftp_ip_address/Images/imagename.jpg"/>
Но он запрашивает имя пользователя и пароль ftp. Как я могу этого достичь? Также можно ли сделать то же самое с помощью java?
3 ответа:
Вы можете попробовать изменить свой атрибут src следующим образом:
<img src="ftp://username:password@my_ftp_ip_address/Images/imagename.jpg"/>
Вы говорите браузеру, чтобы он получил доступ к изображениям по протоколу ftp, поэтому он пытается войти в систему.
Измените ftp:/ / на http:// (или https://, если используется ssl) для доступа к изображениям.
Вы можете, конечно, также добавить имя пользователя и пароль к изображению, но таким образом каждый может посмотреть на ваш код и войти на ваш ftp-сервер... не совсем безопасно ;)
Хотя вы действительно можете добавить учетные данные к URL FTP, это не имеет особого смысла. Таким образом, Вы делаете учетные данные общедоступной информацией. Если вы согласны с этим, почему бы не разрешить анонимный доступ к файлам сразу?
В любом случае, лучшим решением является маршрутизация изображения через ваш веб-сервер, скрывая не только учетные данные, но и исходный источник изображения.
Создайте скрипт (PHP или любой другой, который вы используете), который действует как источник изображения (вы будете используйте его в атрибуте
<img src=...>
. Скрипт "произведет" изображение, загрузив его с FTP-сервера.Самый тривиальный способ реализации такого скрипта (скажем
image.php
):<? header('Content-Type: image/jpeg'); echo file_get_contents('ftp://username:password@ftp.example.com/path/image.jpg');
И затем вы используете его в HTML, как:
<a src="image.php" />
(предполагая, что
image.php
находится в той же папке, что и Ваша HTML-страница)
Скрипт используетFTP URL-обертки . Если это не разрешено на вашем веб-сервере, вам придется пойти более сложным путем с функциями FTP. Видеть PHP: как мне читать файл с FTP-сервера в переменную?
Хотя для действительно правильного решения, вы должны предоставить некоторые заголовки HTTP, связанные с файлом, например
Content-Length
,Content-Type
иContent-Disposition
. Для этого смотрите загрузка файла с помощью PHP-скрипта с FTP-сервера в браузер с заголовком Content-Length без сохранения файла на веб-сервере.