Какой правильный путь мне нужен, чтобы увидеть мое загруженное изображение? - PullRequest
2 голосов
/ 16 сентября 2010

В моем веб-приложении одна из моих страниц загружает фотографию по пути

/usr/local/rac/picture-name-goes-here

Фотография загружается нормально, но мне нужно получить доступ к ней на другой странице, и когда я пытаюсь получить к ней доступ измой JSP, он не будет отображаться, я предполагаю, что мой путь к фотографии неправильный

Код в моем JSP для доступа к фотографии выглядит следующим образом.

            <tr>
                <td>
                    <img src="/usr/local/agent/photo-name-here.jpg"/>
                </td>
            </tr>

Яневерно этот путь к фото?Если это поможет, я запускаю свое веб-приложение из Tomcat, которое находится в каталоге

C: \ Tomcat6

. Я в конечном итоге перенесу это на машину с Linux и ожидаю, что я буду использовать то жепуть к фото.

Ответы [ 2 ]

3 голосов
/ 16 сентября 2010

Здесь есть одно серьезное заблуждение.HTML выполняется веб-браузером, а не веб-сервером.Веб-браузер загружает HTML, сканирует любые ресурсы, которые также необходимо загрузить (CSS, скрипты, изображения и т. Д.), И запускает новый HTTP-запрос для каждого из них.Все ресурсы должны указывать на действительный URL-адрес , а не на какой-либо путь к файловой системе локального диска, о котором клиентская машина даже не подозревает.

Существует два основных способа решения этой «проблемы»:

  1. Добавьте новый Context к Tomcat's /conf/server.xml:

    <Context docBase="/usr/local/agent" path="/images" />
    

    Таким образом, они будут доступны через http://example.com/images/... и вы 'Вы сможете использовать следующие <img>

    <img src="/images/photo-name-here.jpg"/>
    
  2. Создать Servlet, который в основном получает InputStream изображения и записывает его в OutputStreamответ по правильному набору заголовков.Вы можете найти здесь базовый пример такого сервлета и здесь более продвинутый пример.Когда Servlet отображается на /images/* в web.xml, изображения доступны для http://example.com/contextname/images/..., и вы сможете использовать его следующим образом (при условии, что файл JSP / HTML находится вкорневой контекст):

    <img src="images/photo-name-here.jpg"/>
    
1 голос
/ 16 сентября 2010

src="/usr/local/agent/photo-name-here.jpg" <- этот URL-адрес является локальным адресом на вашем сервере, чтобы показать ваши изображения, вы должны установить действительный адрес <code>HTTP, например:

http://www.yourdomain.com/images/photo-name-here.jpg

Для этого вам нужно загрузить фотографию в localpath, который находится внутри вашей корневой папки www.

Если ваш webapp установлен в

  • /home/apache/www/website/

, вы загрузите изображения в папку, например:

  • /home/apache/www/website/images/

и тогда ваш HTTP адрес будет

Я получил немногопутайте с двумя путями в /usr/ и C:\Tomcat

Я рекомендую вам параметризовать папку upload localpath, так что вы будете изменять только конфигурационный файл, а не все функции или методы, которые обращаются кэтот локальный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...