Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как из веб-приложения создавать файлы, используя относительные пути 
:(
    Опции темы
Barvetal
Дата 29.8.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 181
Регистрация: 31.10.2005

Репутация: 5
Всего: 5



Всем привет!

У меня есть веб-приложение (портлет; можно сказать, что это сервлет, для тех, кто не знает). В моем веб-приложении генерится в коде jpg-файл. Затем этот файл нужно показывать на сайте. Поэтому этот jpg-файл нужно положить куда-то в каталог моего веб-приложения, чтобы на него можно было ссылаться из html.

Так вот. Создал каталог images в WEB-INF. Мои скомпилированные и запакованные в jar классы лежат в WEB-INF/lib/myWebApp.jar.

Хочу сохранить сгенерированный файл в WEB-INF/images/. Но не получается - при попытке выполнить в коде 
Код

new FileOutputStream(imageFilePath)
 выдает мне java.io.FileNotFoundException: images/test.jpg (The system cannot find the file specified). При этом imageFilePath равняется images/test.jpg. Каталог WEB-INF/images присутствует.

Как мне сохранять файл в каталоге веб-приложения?

Всем заранее спасибо!
PM MAIL   Вверх
Stampede
Дата 29.8.2006, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Barvetal, тебе повезло: твоя проблема решается очень легко smile

Ты пытаешься создать OutputStream, используя относительное имя. А разрешаться-то оно будет системынми средствами, то есть относительно рабочей директории процесса - скорее всего, домашнего каталога всего контейнера.

Чтобы путь указывал на то место, которое ты хочешь, его нужно скорректировать так, чтобы он отмерялся от корня твоего веб-проложение. Например, можно сделать это таким образом:

Код

public class YourServlet extends HttpServlet {
  // ...

  protected void doGet(HttpServletRequest req, HttpServletResponse resp)
              throws ServletException, java.io.IOException {
    String resourcePath = "/images/test.jpg"; // обрати внимание на передний слэш!
    String filePath = getServletContext().getRealPath(resourcePath);
    FileOutputStream out = new FileOutputStream(filePath);
  }
  // ...
}


Одно небольшое замечание. Если ты хочешь сохранять картинки обязательно в WEB-INF/images, то тебе придется написать собственный сервлет, который будет их показывать. Потому что по умолчанию все, что находится под WEB-INF, считается защищенной инфой, и просто так по запросу веб сервером не выдается. Поэтому в коде примера я указал путь к обычной директории images, которую соответственно нужно будет создать прямо в корне твоего веб приложения.



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
yario
Дата 16.6.2008, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 3.6.2008

Репутация: нет
Всего: нет



а как создать просто папку на java? 
PM MAIL   Вверх
ecologist
Дата 16.6.2008, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 452
Регистрация: 28.2.2007

Репутация: 5
Всего: 9



Цитата(yario @  16.6.2008,  02:25 Найти цитируемый пост)
а как создать просто папку на java? 

Один топик - один вопрос. Читайте правила - http://forum.vingrad.ru/act-boardrules.html. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.