powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Файлы из папки resources
15 сообщений из 40, страница 2 из 2
Файлы из папки resources
    #38804517
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoС вопросом домтупа к файлам я разобрался.

Теперь у меня такой вопрос. Как представить это юзеру. Сейчас у меня идет сохранение в папку Temp, но я так понимаю, что сохранение будет на сервер, а мне надо представить файл юзеру. И это из обычного класса, а не из сервлета.
Судя по постановке задачи можно юзеру и на дискете принести.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38804646
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

А как вы хотите, чтобы я задачу поставил.
1. Есть клиент.
2. Он заходит по некому URL на сайт. Происходит аутентификация, он идет на некую страницу, которая от отображает какие-то данные (например список транзакций за последний месяц). Он изучает этот список и решает скачать его себе на комп.
3. На сервере запускается процесс формирования файла, он находится в памяти, либо его можно временно сохранить где-нибудь в темпе, не суть важно.
4. Теперь с сервера клиент должен этот файл как-то получить.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38804658
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoBlazkowicz,
А как вы хотите, чтобы я задачу поставил.
1. Есть клиент.
2. Он заходит по некому URL на сайт. Происходит аутентификация, он идет на некую страницу, которая от отображает какие-то данные (например список транзакций за последний месяц). Он изучает этот список и решает скачать его себе на комп.
3. На сервере запускается процесс формирования файла, он находится в памяти, либо его можно временно сохранить где-нибудь в темпе, не суть важно.
4. Теперь с сервера клиент должен этот файл как-то получить.
Ну, значит мы таки говорим о передаче файла из сервера в браузер по HTTP.

Тогда как объяснить следующее
GeronemoИ это из обычного класса, а не из сервлета.
Это требование откуда нарисовалось?

Почему "не из сервлета"?
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38804667
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo3. На сервере запускается процесс формирования файла, он находится в памяти, либо его можно временно сохранить где-нибудь в темпе, не суть важно.
4. Теперь с сервера клиент должен этот файл как-то получить.
Чтобы что-то запустить на сервере нужен как раз Сервлет.
Он может (и уже через обычный класс - если так надо) Понять что от него хочет пользователь и сделать это.
В данном случае Пользователь должен высказать свое желание программе клиенту.
1. Программа клиент отправляет запрос Сервлету и говорит - начни готовить файлы.
2. Тем или иным способом узнает что Файлы готовы. Заодно узнает по какому URL их можно скачать.
3. И скачивает.

Сервлет из пп.1-2 (или сервлеты) кладут файлы куда-то. И придумывают URL по которому эти файлы будут доступны. Заодно объясняют системе авторизации, почему они должны быть доступны именно этому пользователю.

В кратце как-то так. А вместо имени файла хорошо подходит GUID и в подпапку с именем сессии (правда не всегда).
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38808016
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался с вопросом предоставления файла пользователю с помощью AbstractResource.

Теперь есть такой вопрос. Не помню, писал ли я выше, но задача, которую я решаю это экспорт данных в Excel файл Для этого мне надо было прочитать файл-шаблон, запихать туда данные и выдать файл пользователю.

Все заработало, но осталось 2 хвоста.
1. Одно из значений таблицы имеет тип BigDecimal (именно таокео поле имеет Dto из базы данных). И при вставлении данных эта колонка остается пустой. Я в файле шаблона выставлял тип колонки - число, не помогло. Также я делал класс, аналогичный ДТО, с единственным изменением - String вместо BigDecimal. И когда я записываю в файл Список этого типа, то там вообще ничего не записывается, остается пустота.
2. Некоторые из данных полей являются довольно длинными и было бы неплохо, если бы текст разбивался на несколько строчек и высота ячейки менялась бы под это дело. У меня текст разбивается на несколько строчек, но высота ячейки увеличивается только у 1-й строчки. Остальные остаются той же высоты и надо заглядывать в каждое поле, чтобы посмотреть полный текст. Неудобно для конечного пользователя.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38808165
DDiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,

а как вставляете данные в шаблон?
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38808260
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemoпрочитать файл-шаблон, запихать туда данные и выдать файл пользователю.
в шаблоне шапка и одна полностью отформатированная строка.
При вставке перед каждой строкой - копируйте строку в Excell.
Соответственно, все 500 строк будут с форматом - Переброска строк и автовысота ячеек.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38809670
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DDiverGeronemo,

а как вставляете данные в шаблон?

Map beans = new HashMap();

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");

beans.put("name", "Отчет " + sdf.format(date1) + " по " + sdf.format(date2));
beans.put("report", list);

InputStream inputStream = new FileInputStream(filename); // файл шаблона

XLSTransformer transformer = new XLSTransformer();
org.apache.poi.ss.usermodel.Workbook workbook = null;

workbook = transformer.transformXLS(InputStream, beans);

Вот тут описано, как чего делать http://jxls.sourceforge.net/reference/collections.html

Делаее workbook отсылается в класс, который предоставляет пользователю возможность сохранить его у себя на диске.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38809677
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Geronemoпрочитать файл-шаблон, запихать туда данные и выдать файл пользователю.
в шаблоне шапка и одна полностью отформатированная строка.
При вставке перед каждой строкой - копируйте строку в Excell.
Соответственно, все 500 строк будут с форматом - Переброска строк и автовысота ячеек.
Это решило бы проблему, немного коряво, но все же. Только один вопрос - как копировать строку из java ?
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38809709
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,
Этот вариант с самим Excell (OLE)
Самый гибкий отчёт с подкрашиванием, итогами и т.д.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38810631
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, все заработало.

Пришлось поизвращаться вот таким способом.

Sheet shууе = workbook.getSheetAt(0);

for (int i = 0; i < list.size(); i++) {
ObjectType obj = list.get(i);

Row row = sheet.createRow(i + 3);
Cell cell = row.createCell(0);
cell.setCellValue(obj .getName());
.......................
}
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38856227
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть еще один вопрос. Уже не про Excel, а вообще в общем виде.

Допустим у нас есть некий url, по которому находится новый файл. Как из Java приложения скачать его. Причем не на диск в файл, а чтобы пользователю появилось сообщение браузера - Открыть файл/Сохранить (Пользователь изначально сидит в браузере и мы динамически генерим ему ссылки).
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38856237
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoЕсть еще один вопрос. Уже не про Excel, а вообще в общем виде.

Допустим у нас есть некий url, по которому находится новый файл. Как из Java приложения скачать его. Причем не на диск в файл, а чтобы пользователю появилось сообщение браузера - Открыть файл/Сохранить (Пользователь изначально сидит в браузере и мы динамически генерим ему ссылки).

Код: java
1.
2.
3.
4.
5.
6.
HttpServletResponse r;
URL documentUrl;
...
r.setContentType("...");
r.setHeader("Content-Disposition", "...");
IOUtils.copy(documentUrl.openStream(), r.getOutputStream());



Правильные значения для Excel и Content-Disposition Attachment - нагуглить.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38857418
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, а чему у нас равно HttpServletResponse r;
Потому как у меня даже не компилируется такой, очевидный NPE

Кстати, у меня было в каком-то проекте Наследование от AbstractResource, сейчас изучаю, как это можно тут прикрутить.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38857618
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все норм, нашел решение вопроса
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Файлы из папки resources
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]