Плагин Uploadify не называет Сервлет Java

я только что начал использовать флеш-плагин Uploadify вместо стандартного HTML UI.
И встреченный следующая проблема:

то, когда я нажимаю на ссылку "Upload Files", тот прогресс показывают, и "завершенное" состояние появляется, но в действительности - это не сделало, произошло что-либо, Сервлет Java не называют от бэкенда.

Существует сервлет загрузки и загрузка выполненного следующего пути ранее:

< form enctype="multipart/form-data" method="post" target="uploadFrame"
action="<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=${remoteFolder}">...

После обеспечения плагина Uploadify UI теперь похож:

сменная часть (конфигурация):

    

параметр 'сценариев' здесь указывает на Сервлет Java на бэкенде

<%= decodedString %> путь к папке, который значение \\файл-srv\demo

часть для загрузки:


Upload Files

Где мой отказ?

Параметрический усилитель 'Сценария' в сменной конфигурации указывает на Сервлет Java на бэкенде, и это сделано, но Сервлет не инициирован.

ошибка, когда параметрический усилитель 'сценария' не является correct:http://img190.imageshack.us/i/errormm.png/

Спасибо за помощь.

11
задан sergionni 17 February 2010 в 10:45
поделиться

1 ответ

Это может иметь множество возможных причин (также см. Мои комментарии).

  • Внешний JS не загружен.
  • Код JS неверен синтаксически / логически.
  • URL-адрес запроса недействителен.
  • Сервлет вообще не отображается.
  • Сервлет сопоставлен с неправильным URL-шаблоном .
  • Сервлету не удалось запустить / инициализировать.

Трудно определить основную причину, основываясь на имеющейся информации.

Как вы упомянули, вы не видели, чтобы на вкладке «Сеть» FireBug был запущен какой-либо запрос, я думаю, что код JS просто синтаксически / логически неверен. Щелкните правой кнопкой мыши страницу и дважды проверьте сгенерированный / распечатанный код JS.

Обновление: Я попытался воспроизвести вашу проблему.

  1. Я загрузил jquery.uploadify-v2.1.0 (MIT) , извлек его и поместил все содержимое в папку / WebContent / uploadify моего (пустого) веб-проекта игровой площадки. в Eclipse.

  2. Я создал файл /WebContent/upload.jsp следующим образом:

      
      
      
      Uploadify test  
      
      
      
      
      
      
      
      Загрузить  
      
      {{1} } 
  3. Я создал com.example.UploadServlet следующим образом с небольшой помощью Apache Commons FileUpload (только что поместил commons-fileupload-1.2.1.jar и commons-io-1.4.jar в / WEB-INF / lib ):

     package com.example; 
     
    импорт java .io.IOException; 
    импорт java.util.List; 
     
    импорт javax.servlet.ServletExcepti on; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 
     { {1}} import org.apache.commons.fileupload.FileItem; 
    import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
    импортировать org.apache.commons.fileupload.servlet.ServletFileUpload ; 
     
    открытый класс UploadServlet расширяет HttpServlet {
    protected void doPost (запрос HttpServletRequest, ответ HttpServletResponse) 
    выбрасывает исключение ServletException, исключение IOException 
     {{{1 }} System.out.println ("UploadServlet запущен. Вот все загруженные файлы: "); 
    попробуйте {
    List  items = new ServletFileUpload (new DiskFileItemFactory ()). ParseRequest (request); 
    for (FileItem item : items) {
    if (! item.isFormField ()) {
    System.out.println ("Имя:" + item.getName ()); 
    System.out.println ("Размер:" + item.getSize ()) ; 
    System.out.println ("Type:" + item.getContentType ()); 
    } 
    } 
    } catch (Исключение e) {{{ 1}} throw new ServletException (e); 
     
    } 
    } 
     
  4. Я зарегистрировал com.example.UploadServlet в web.xml следующим образом:

      
      uploadServlet  
      com.example.UploadServlet  
      
      
      uploadServlet  
      / uploadServlet  
      
     
  5. Я развернул проект, запустил сервер, перешел на http: // localhost: 8080 /playground/upload.jsp, выбрал случайный большой файл из моей папки загрузок, щелкнул ссылку Загрузить , увидел, что счетчик процента загрузки увеличивается до 100%, и я наконец вижу следующее в стандартном выводе:

     Отправитель влет вызывается. Вот все загруженные файлы: 
    Имя: glassfish-v3-windows.exe 
    Размер: 50402555 
    Тип: application / octet-stream 
     

I ' м, извините, я не могу воспроизвести вашу проблему. По крайней мере, приведенная выше информация должна помочь вам начать работу «с нуля». Надеюсь, поможет.

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

'<%= request.getContextPath() %>/uploadFile?portletId=${portletId}&remoteFolder=<%= decodedString %>',";

на

'<%= request.getContextPath() %>/uploadFile;jsessionid=${pageContext.session.id}?portletId=${portletId}&remoteFolder=<%= decodedString %>',";
21
ответ дан 3 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: