Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > fileupload


Автор: MrLjaO 10.1.2007, 13:14
Возможно я ошибся в предыдущий раз. и разместил тему не там.. почему пробую узнать истину тут.
Проблема с fileupload.
По идее действия все стандартные ...
получаем запрос, проверяем на multi , если да - то парсим используя следующую вещь
Код

public String doUpload()
{
        ....
//request определяеться выше. с ним всё в порядке ...

        FileItemFactory factory = new DiskFileItemFactory();
        ServletFileUpload upload = new ServletFileUpload(factory);
        List items = null;
        try
        {
            items = upload.parseRequest(request);
        }
        catch (FileUploadException e)
        {
           //ловим иксэпш
        }
    ...

Проблема в том что после таких действий items - пустой список ...
Хотя в запросе явно видно что он multi и то что с ним есть файл.
Как быть кто может подсказать.
P.S.
Все работало нормально до апгэйта webwork'a. Может ли быть дело в нём ?
Так же заметил что 
parseRequest(с данным запросом) вызывается ещё до старта функции doUpload()
Вызов идёт из JakartaMultiPartRequest (HttpServletRequest servletRequest, String saveDir, int maxSize)
этот клас используется где то в webworke а parseRequest парсит нужный мне запрос (в данном случае возвращает список тот, что надо  --  а при вызове из doUpload - уже пустой )

Есть какие-нибудь мысли по этому поводу?

Автор: MisterCleric 11.1.2007, 10:30
Привет. Ситуация такая. Есть в webwork FileUplaodInterceptor он запускаеться перед выполнением твоего Action и в нем уже и происходит parseRequest и обращение к JakartaMultiPartRequest. Почитай книгу "Webwork in Action" там все четко написано по поводу Upload

Автор: Nymph666 13.3.2013, 14:47
А что же делать-то? 
Как-то запрещать ему запускаться или есть другой подход?

Автор: Nymph666 13.3.2013, 15:39
Задача решена!
Проблема решается на раз, два, три.
Я использовала GWTшный виджет для загрузки файла.
И нужно всего лишь добавить следующую строчку.
Код

        fileUpload.setName("MyFileUpload");


в случае с php:
 вместо строки
Код

<input type="file" /> 


нужно написать такую:
Код

<input type="file" name="aFile" />

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)