powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / как скачать файл с сервера
25 сообщений из 27, страница 1 из 2
как скачать файл с сервера
    #38240941
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро.
Есть файл(архив) на сервере(Tomcat). клиент должен иметь возможность скачивать этот файл.

Подскажите что-нибудь.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241052
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241127
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Если честно, мне это не очень сильно помогло.

нашёл, что можно указать писать sendRedirect("имя файла"), но юзер не видит это файл почему то.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241132
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Если честно, мне это не очень сильно помогло.

Сам файл где находится? Нужно просто сделать его доступным для DefaultServlet.
Можно вот так, замапить просто директорию с диска. Нужно лишь секурити обернуть.
http://stackoverflow.com/questions/1552812/mapping-a-directory-outside-the-web-app-to-url-in-tomcat
Вы же не объясняете всей задачи.
За отдачу файлов в Tomcat отвечает DefaultServlet. Если вы чего-то не понимаете - задавайте вопросы.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241176
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

у меня в проекте есть файлик. я хочу чтобы по нажатию на кнопку юзер мог скачать его к себе на машину.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241181
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90у меня в проекте есть файлик.
У томката нет "проекта". У war модуля, тоже нет "проекта". Проект есть в IDE. IDE это среда разработки.
А для того чтобы узнать как отдать файл нужно знать где он лежит в рантайме, а не во время разработки.

redwhite90я хочу чтобы по нажатию на кнопку юзер мог скачать его к себе на машину.
Собирай проект так, чтобы файл попадал в корень war модуля.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241397
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

авторУ томката нет "проекта". У war модуля, тоже нет "проекта". Проект есть в IDE. IDE это среда разработки.
А для того чтобы узнать как отдать файл нужно знать где он лежит в рантайме, а не во время разработки.



у меня просто есть файлик! войнаИмир.txt я знаю его адрес на операционной системе сервера. Мне надо его передать клиенту.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241423
ferc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwhite90,

ссылку на него сделай
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241440
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90у меня просто есть файлик! войнаИмир.txt я знаю его адрес на операционной системе сервера. Мне надо его передать клиенту.
Это не терминология программиста.
Как происходит доставка файла клиенту.
1. Есть файл в локальной файловой системе.
2. Есть сервер, который получает запрос, находит файл в локальной файловой системе и перекачивает его в ответ.
3. Есть браузер, который отправляет запрос и получает в ответ файл.

Есть Tomcat, который по-умолчанию делает все файлы myApp.war/ доступными клиентам, кроме WEB-INF.
Если файлик находится вне myApp.war, то выше я привел ссылку на конфиг, как сделать, чтобы любой файлик можно было подключить к томкату.
http://stackoverflow.com/questions/1552812/mapping-a-directory-outside-the-web-app-to-url-in-tomcat
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241497
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczКак происходит доставка файла клиенту.
1. Есть файл в локальной файловой системе.
2. Есть сервер, который получает запрос, находит файл в локальной файловой системе и перекачивает его в ответ.
3. Есть браузер, который отправляет запрос и получает в ответ файл.


Вот это мне и надо как-то сделать. Пример кода не покажете?
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241532
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90BlazkowiczКак происходит доставка файла клиенту.
1. Есть файл в локальной файловой системе.
2. Есть сервер, который получает запрос, находит файл в локальной файловой системе и перекачивает его в ответ.
3. Есть браузер, который отправляет запрос и получает в ответ файл.


Вот это мне и надо как-то сделать. Пример кода не покажете?
Гугл -> DefaultServlet -> куча примеров
http://stackoverflow.com/questions/870150/how-to-access-static-resources-when-using-default-servlet/3593513#3593513
Пока вам лень задавать конкретные вопросы, вряд ли кто-то остро захочет дать более конкретные ответы.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241858
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

ммм, куда уж конкретнее?

есть файл, его путь в ос я знаю.
у меня должна быть страничка, на которой кнопка должна быть, по этой кнопке файл должен начать скачиваться клиентом, желательно при этом перекинуться на другую страничку.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241877
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90есть файл, его путь в ос я знаю.
у меня должна быть страничка, на которой кнопка должна быть, по этой кнопке файл должен начать скачиваться клиентом, желательно при этом перекинуться на другую страничку.
Разбивайте ваши проблемы на под задачи.
1. Организовать ссылки и страницы
2. Организовать отдачу файла сервером
->
1.1. Организовать первыю страницу
1.2. Отрендерить ссылку в страницу
1.3. Обработать действия пользоватля

2.1. Придумать какой должна быть HTTP ссылка на файл
2.2. Замапить сервлет-обработчкик HTTP ссылки на файл в web.xml
2.3. Реализовать сервлет

2.3.1 Реализовать парсинг запроса
2.3.2 Реализовать поиск файла по запросу
2.3.3 Реализовать копирование файла из файловой системы в HTTP Response

Вот куча подзадач в грубом приближении. При желании их можно бить дальше. Какие именно задачи вы умеете решать, а с какими возникли сложности - не понятно.
Какие именно сложности возникли - не понятно.
Вам сегодня лень что-то вразумительное на форуме написать.

Вам даже лень посмотреть реализацию DefaultServlet и скопипастить в свой сервлет. Можно просто отнаследоваться от DefaultServlet и дописать работу с папкой а файловой системе.

Пойду поищу в гугле полностью готовый пример за вас.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241880
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241928
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(my_file);
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0){
    out.write(buffer, 0, length);
}
in.close();
out.flush();



Это то, что надо!

А как правильно было сформулировать вопрос чтобы было понятно?

Только теперь проблема, что после всех этих действий не получается форварднуться на другую страницу т.к. response заиспользован уже.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241941
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90Это то, что надо!

Не совсем. Дело в том что DefaultServlet реализует то же самое намного лучше. Например позволяет докачивать с определенной позиции. Да, и ресурсы, думаю, правильно закрывает. А ещё HTTP заголовки нужно выставлять.

redwhite90А как правильно было сформулировать вопрос чтобы было понятно?

"Как скопировать данные из файла в HTTP Response"

redwhite90Только теперь проблема, что после всех этих действий не получается форварднуться на другую страницу т.к. response заиспользован уже.
JavaScript в помощь. Нельзя на сервера на один запрос сделать два ответа - и файл отдать и страницу показать. Надо научить клиента делать два разных запроса. Один на скачивание файла, второй на переход на нужную страницу.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241959
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНе совсем. Дело в том что DefaultServlet реализует то же самое намного лучше. Например позволяет докачивать с определенной позиции. Да, и ресурсы, думаю, правильно закрывает. А ещё HTTP заголовки нужно выставлять.

хотелось бы пример


Blazkowicz"Как скопировать данные из файла в HTTP Response"

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

BlazkowiczJavaScript в помощь. Нельзя на сервера на один запрос сделать два ответа - и файл отдать и страницу показать. Надо научить клиента делать два разных запроса. Один на скачивание файла, второй на переход на нужную страницу.

Как-то грустно.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241965
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90хотелось бы пример

Чего пример?

redwhite90я же не знал, что если я в response скопирую файл, то пользователю выведется диалог на скачку файла
Надо отложить в сторону программирование и почитать про HTTP, например.

redwhite90Как-то грустно.
Это к доктору. Пусть антидепресантов пропишет. Кому не грустно идут в гугл и ищут готовое решени.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38241979
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Blazkowicz]redwhite90хотелось бы пример

Чего пример?

Того же самого кода, что я скопировал, только через DefaultServlet раз он такой классный
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38244192
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90есть файл, его путь в ос я знаю.
у меня должна быть страничка, на которой кнопка должна быть, по этой кнопке файл должен начать скачиваться клиентом, желательно при этом перекинуться на другую страничку.Чем не подходит:
Код: html
1.
<a href="/путь/к/файлу/имя.файла">Жми сюда!</a>

?
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38244324
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,

тем, что страница при этом не обновится.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38244437
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite90тем, что страница при этом не обновится.Тег href - не всё, что вы можете разместить на странице.

P.S. Что обновлять-то хотите? Счётчик загрузок?
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38244444
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут есть варианты.
Самый простой - на onclick повесить яваскрипт window.open(адрес_файла), сабмит как и прежде. Откроется новое окно, начнется закачка и оно закроется. В прежнем окне произойдет переход. Возможны варианты с фреймами, но вас могут не понять некоторые антивирусы.
Посложнее - повесить событие на открываемую страницу. На onload скрипт типа window.location=адрес_файла. Новое окно открываться не будет, но закачка будет происходить при каждом заходе на страницу. Поэтому этим скриптом надо управлять через сервер, чтобы он вставлялся на страницу только после перехода по кнопке.
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38244482
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwhite90
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream(my_file);
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0){
    out.write(buffer, 0, length);
}
in.close();
out.flush();


И кстати, если файл находится в ресурсах приложения, то можно еще проще. Например, открываем доступ к lib:
Код: java
1.
2.
3.
4.
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
	request.getRequestDispatcher("/WEB-INF/lib"+request.getPathInfo()).forward(request, response);
}
...
Рейтинг: 0 / 0
как скачать файл с сервера
    #38245069
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov P.S. Что обновлять-то хотите? Счётчик загрузок?

всю страницу

ivanra , не хотелось бы javaScript тут наворачивать.
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / как скачать файл с сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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