Как получить inputStream с сервера, используя fileUploader и GWT 2.4? - PullRequest
0 голосов
/ 03 декабря 2011

У меня есть виджет fileUploader, который я использую для выбора файла XML. Затем у меня есть кнопка, которая вызывает мой обработчик в классе viewImpl, когда пользователь отправляет выбранный файл. Если я все правильно понимаю, оттуда я делаю отправку из formPanel, и файл находится на сервере.

@UiHandler("calculateComplexityButton")
    void onClickCalculateComplexity(ClickEvent e){
        formPanel.submit();
        //How do I get the inputStream back to here????
        presenter.getTask(inputStream);
    }

Моя проблема в том, как мне получить inputStream с сервера? Я пытался использовать вызов RPC для всего этого, но когда я пытаюсь получить inputStream, я ничего не вытаскиваю с сервера. Я попробовал:

inputStream = request.getInputStream();

но он кажется пустым. Есть идеи по этому поводу?

Я удалил код RPC и использовал простой HTTPRequest, который нашел здесь . Это приводит меня к сервлету, но в запросе нет потока файлов. Когда я доберусь до этой строки в коде:

FileItemIterator iter = upload.getItemIterator(request); //Nothing is here in iter.

1 Ответ

1 голос
/ 07 декабря 2011

Вы не можете сделать загрузку через RPC, поэтому вам нужно отправить свою форму сервлету.

final FormPanel form = new FormPanel();
form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);
form.setAction("/upload");

Итак, когда вы выполняете form.submit (), он отправит ваш файл наДействие (Servlet).На стороне сервера вы можете использовать форму lib apache ( commons-fileupload ).У вас есть много разных способов получить ваш файл, вы можете сохранить на диске, прочитать в памяти ....

...