я только что начал использовать флеш-плагин 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/
Спасибо за помощь.
Это может иметь множество возможных причин (также см. Мои комментарии).
URL-шаблоном
. Трудно определить основную причину, основываясь на имеющейся информации.
Как вы упомянули, вы не видели, чтобы на вкладке «Сеть» FireBug был запущен какой-либо запрос, я думаю, что код JS просто синтаксически / логически неверен. Щелкните правой кнопкой мыши страницу и дважды проверьте сгенерированный / распечатанный код JS.
Обновление: Я попытался воспроизвести вашу проблему.
Я загрузил jquery.uploadify-v2.1.0 (MIT) , извлек его и поместил все содержимое в папку / WebContent / uploadify
моего (пустого) веб-проекта игровой площадки. в Eclipse.
Я создал файл /WebContent/upload.jsp
следующим образом:
Uploadify test
Загрузить
{{1} }
Я создал 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);
}
}
Я зарегистрировал com.example.UploadServlet
в web.xml
следующим образом:
uploadServlet
com.example.UploadServlet
uploadServlet
/ uploadServlet
Я развернул проект, запустил сервер, перешел на 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 %>',";