2013-11-24 4 views
0

Я хочу наблюдать процент загрузки загружаемого файла из GWT.GWT FileUpload с прослушивателем хода

В JavaScript вы можете использовать XMLHttpRequest и добавить слушатель события, как это:

var oReq = new XMLHttpRequest(); 

oReq.upload.addEventListener("progress", updateProgress, false); 

// progress on transfers from the server to the client (downloads) 
function updateProgress (oEvent) { 
    if (oEvent.lengthComputable) { 
    var percentComplete = oEvent.loaded/oEvent.total; 
    // ... 
    } else { 
    // Unable to compute progress information since the total size is unknown 
    } 
} 

(. Приведенный выше код является от here)

Это также делается очень легко в JQuery как:

var $request = $.ajax({ 
     xhr: function() { 
     xhrNativeObject = new window.XMLHttpRequest(); 
     //Upload progress 
     xhrNativeObject.upload.addEventListener("progress", function(event) { ... } 
     } 
}); 

Я хочу сделать то же самое с GWT. Я мог бы использовать RequestBuilder для отправки запроса, но это всего лишь оболочка высокого уровня вокруг объекта XMLHttpRequest JavaScriot. Другой возможностью было бы использовать класс GWT XMLHttpRequest, который является оберткой JSNI JavaScript XMLHttpRequest.

Моей проблема:

Как я могу добавить прогресс слушатель к XMLHttpRequest или RequestBuilder?

ответ

1

Я использовал перед gwt-upload library.

Вам не нужно заново открывать Америку.

Спасибо за Moxie группы

gwt-upload-project page

+0

Можете ли вы привести пример, как я могу использовать это с бэкэндом без GWT и без ui, предоставляемого gwt-upload? – confile

0
//upload spring service conroller 
@RequestBody public void uploadImage(@RequestParam("file") MultipartFile file){ 
    //what ever you want 
} 

XML конфигурации

<bean id=multipartResolver" class ="org.springframework.web.multipart.commons.CommonsMultipartResolver" /> 
+0

@ Я использую Grails в качестве backend. Я не понял, как вы обрабатываете часть GWT для продвижения загрузки? – confile

+0

на мой первый ответ, gwt-upload project также имеет прогресс. я не справляюсь с этим. при загрузке файла отображается прогресс. если вы реализуете свой собственный компонент загрузки, я не знаю, как он работает. –

+0

извините, но это мне не помогает – confile

0

GWT Elemental содержит все, что нужно уже AFAICT.

+0

Я не нашел, когда GWT Element имеет слушателя прогресса. – confile

+0

Я говорю об элементах элемента elemental.xml.XMLHttpRequest, elemental.xml.XMLHttpRequestUpload', 'elemental.events.XMLHttpRequestProgressEvent' и' elemental.html.FormData' из JAR-файла gwt-elemental. '') –

+0

Не могли бы вы привести короткий пример, я не мог понять, как это работает. – confile

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