Обработка / доступ к файлам на диске - PullRequest
2 голосов
/ 06 февраля 2012

Я использую Java с JSF и контейнер Glassfish 3.В моем веб-приложении я пытаюсь реализовать систему управления файлами (изображениями).

У меня есть файл config.properties, из которого я читаю путь, по которому должны быть сохранены загруженные изображения.

save.file.path.event = D:\\upload

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

<img src = "D:/upload/img1.png" />

Веб-сервер полностьюдругой раздел.

Помимо проблемы изображение не найдено У меня есть следующий вопрос, касающийся передового опыта в этой области: если они будут в то время, когда я опубликую приложение на веб-сервере, какБезопасно / правильно использовать путь вроде D:\\upload?Некоторые проблемы, которые приходят мне в голову, - это различия между операционными системами или неопределенность имени раздела.

Ответы [ 2 ]

2 голосов
/ 07 февраля 2012

Вы пытаетесь сослаться на изображение с локальным путем.Имейте в виду, что веб-браузер (на клиентском компьютере) интерпретирует этот тег img, поэтому он будет искать это местоположение в своей собственной файловой системе, а не в файловой системе сервера.Вам нужно указать ссылку на веб-адрес, по которому ваш сервер обслуживает изображение.Например http://server/upload/img1.png.

1 голос
/ 08 февраля 2012

Похоже, есть два способа решения этой проблемы

1. Поместите файлы в приложение

Если имя приложения MyApplication, вы можете указать путь, например MyApplication/uploads/ images, и файлы будут сохранены внутри самого приложения. Недостатком этого метода является то, что при каждом повторном или горячем развертывании файлы будут удаляться.

2. Поместите абсолютный путь в конфигурацию веб-контейнера

Для Tomcat перейдите по адресу: ../ Apache Tomcat x.x.xx/conf/server.xml и там напишите:

<Context path="/web_uploads" docBase="C:/uploads/"/>

Для Glassfish перейти к: sun-web.xml file и написать:

<sun-web-app>
    <property name="alternatedocroot_1" value="from=/uploads/* dir=C:"/>
</sun-web-app>
...