2009-06-04 3 views
2

Я использую javazoom для загрузкиЗагрузка файла в Java с помощью сервлетов

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
throws ServletException { 
    PrintWriter out = null; 
    JOptionPane.showMessageDialog(null, "Lets do this"); 
    try { 
     response.setContentType("text/html;charset=UTF-8"); 
     try { 
      MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request); 
      //get uploaded files 
      Hashtable files = dataRequest.getFiles(); 
      if (!files.isEmpty()) { 
       UploadFile uploadFile = (UploadFile) files.get("filename"); 
       byte[] bytes = uploadFile.getData(); 
       String s = new String(bytes); 

файлы всегда приходят как пустые. Любая помощь, пожалуйста?


Затем я попытался сделать это с Apache Commons FileUpload:

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
throws ServletException { 
    PrintWriter out = null; 

     try { 

      response.setContentType("text/html;charset=UTF-8"); 
      //MultipartFormDataRequest dataRequest = new MultipartFormDataRequest(request); 
      //get uploaded files 
      FileItemFactory factory = new DiskFileItemFactory(); 
      // Create a new file upload handler 
      ServletFileUpload upload = new ServletFileUpload(factory); 
      List files = null; 
      try { 
       files = upload.parseRequest(request); 
      } catch (FileUploadException ex) { 
       Logger.getLogger(ProcessUploadItem.class.getName()).log(Level.SEVERE, null, ex); 
      } 

и он не в files = upload.parseRequest(request);

Любые указатели?

Извините и спасибо :)

+0

Обратите внимание на подсказки подсказки при пометке вашего вопроса. Любой тег с числом меньше 10 после его имени, вероятно, неверен. Избегайте создания новых тегов. –

+0

ah thnx ... Я буду помнить об этом – Lilz

ответ

3

Проверьте форму отправки файла имеет ENCTYPE = «многослойные/форму-данные», определенные как здесь:

<form enctype="multipart/form-data" action="... 

Другого путь файл никогда не будет загружать в соответствии с RFC1867

+0

Я написал это своему другому сервлету out.println ("

«); out.println ("

Загрузка файла

"); out.println ("Выбрать файл:"); out.println (""); out.println ("
"); out.println (""); out.println ("
"); – Lilz

0

Вы используете другой каркас, например, Тринидад или подобное? Обычно они включают фильтры, которые восстанавливают загруженные файлы, поэтому, когда процесс попадает на ваш сервер, запрос не содержит прикрепленного файла.

+0

Нет, я не верю, что я: S – Lilz

+0

Я думаю, что скаффман дал вам ответ :) –

4

Я бы рекомендовал использовать для этого более популярную, громкую библиотеку, такую ​​как Apache Commons FileUpload. Это, скорее всего, будет работать, иметь лучшие документы и иметь больше людей, чтобы помочь вам использовать его.

+0

спасибо, на самом деле, я думаю, что буду – Lilz

Смежные вопросы