Извлечение изображения с FTP на веб-страницу


У меня есть папка на моем ftp-сервере, которая содержит несколько изображений. Я пытаюсь получить доступ и показать эти изображения на веб-странице, например

<img src="ftp://my_ftp_ip_address/Images/imagename.jpg"/>

Но он запрашивает имя пользователя и пароль ftp. Как я могу этого достичь? Также можно ли сделать то же самое с помощью java?

3 2

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 без сохранения файла на веб-сервере.