powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Отправка файла пользователю из сервлета и ужасная пропускная способность
3 сообщений из 3, страница 1 из 1
Отправка файла пользователю из сервлета и ужасная пропускная способность
    #34179191
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
Здравствуйте! Отправка пользователю необходимого файла осуществляется след функцией:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
   synchronized   public   void  sendFile2user(HttpServletResponse response, String fullfileName) throws  ServletException, IOException
  {
      //Выделяем из полного пути файла его имя
      String shortname=fullfileName.substring(fullfileName.lastIndexOf("/")+ 1 , fullfileName.length());
      response.setHeader("Content-Disposition", "attachment; filename=\""+shortname+"\"");
      response.setHeader("Content-Transfer-Encoding","binary;");
      String fileExt=shortname.substring(shortname.lastIndexOf(".")+ 1 ).toString();
      //Выставляем заголовок ответа
      String ContDispType="application/force-download";
       if  (fileExt.toString().equalsIgnoreCase("pdf")) { ContDispType="application/pdf"; }
       if  (fileExt.toString().equalsIgnoreCase("exe")) { ContDispType="application/octet-stream"; }
       if  (fileExt.toString().equalsIgnoreCase("zip")) { ContDispType="application/zip";          }
       if  (fileExt.toString().equalsIgnoreCase("doc")) { ContDispType="application/msword";        }
       if  (fileExt.toString().equalsIgnoreCase("xls")) { ContDispType="application/vnd.ms-excel";   } //   "application/x-xls"
       if  (fileExt.toString().equalsIgnoreCase("ppt")) { ContDispType="application/vnd.ms-powerpoint"; }
       if  (fileExt.toString().equalsIgnoreCase("gif")) { ContDispType="image/gif";   }
       if  (fileExt.toString().equalsIgnoreCase("png")) { ContDispType="image/png";      }
       if  (fileExt.toString().equalsIgnoreCase("jpg")) { ContDispType="image/jpg";       }
       if  (fileExt.toString().equalsIgnoreCase("html")) { ContDispType="text/html";       }
       if  (fileExt.toString().equalsIgnoreCase("htm")) { ContDispType="text/html";          }
       if  (fileExt.toString().equalsIgnoreCase("txt")) { ContDispType="text/plain";          }
       if  (fileExt.toString().equalsIgnoreCase("dbf")) { ContDispType="application/x-dbf";    }

      response.setHeader("Content-Type",ContDispType);
       try {
        BufferedInputStream in= new  BufferedInputStream ( new  FileInputStream(fullfileName));
        BufferedOutputStream binout= new  BufferedOutputStream(response.getOutputStream());
         int  ch=in.read();
         while (ch!=- 1 ){
          binout.write(ch);
          ch=in.read();
        }
        binout.close();
        in.close();
      } catch (IOException ioe){
        ioe.printStackTrace();
      }
  }

Вот если канал хороший - то пользователи примиют файл на УРА!
Но если канал узкий и работает с перебоями - то тут ТРУБА. Файл не закачивается нормально и всё. Кто сталкивался и кто как решал такую проблему ?
...
Рейтинг: 0 / 0
Отправка файла пользователю из сервлета и ужасная пропускная способность
    #34180106
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Труба это на самом деле вышепреведенный код. По идее маппинг расширения на MIME тип надо прописывать в web.xml. В случае Томката например, там уже и так куча прописана. Смотри Tomcat_5.5\conf\web.xml.

Вторая проблема это конечно же отсутствие дозакачки.
Можно самому писать реализацию.
Можно заюзать класс из томката. Кажется это org\apache\catalina\servlets\DefaultServlet.java
А можно вообще нужные файлы выкладывать временно на http сервер, который предоставляет наиболее быструю закачку и возможность дозакачки.
...
Рейтинг: 0 / 0
Отправка файла пользователю из сервлета и ужасная пропускная способность
    #34188953
fcs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
fcs
Гость
Спасибо.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Отправка файла пользователю из сервлета и ужасная пропускная способность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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