Я борюсь с простой загрузкой файлов с использованием библиотеки GWT 2.4 + gwtupload 0.6.4.
Вот соответствующая часть моего диалога ui.xml:
<g:DialogBox modal="true" width="400px" height="150px">
<g:caption><ui:msg>Import new..</ui:msg></g:caption>
<g:VerticalPanel styleName="full-width">
<g:InlineLabel styleName="formlabel"><ui:msg>File name</ui:msg></g:InlineLabel>
<up:Uploader ui:field="uploader" validExtensions="zip" styleName="uploader full-width">
</up:Uploader>
<g:Button styleName="button" ui:field="importButton" enabled="true">
<ui:msg>Import</ui:msg>
</g:Button>
importButton
вызывает uploader.submit()
в конце концов. Моя проблема в том, что при первом нажатии кнопки пустой сервер POST отправляется на сервер, и я получаю сообщение об ошибке. Если я нажму кнопку во второй раз, мой файл будет хорошо обработан. Если я закрою диалог и начну все сначала, произойдет то же самое. Все попытки импорта, следующие за первой, в порядке.
Вот пустой пример POST:
Content-Type: multipart/form-data;
boundary=---------------------------9003259118762
Content-Length: 46 -----------------------------9003259118762--
Я попытался второй раз нажать на кнопку в качестве обходного пути. Однако, если я улавливаю полученное сообщение об ошибке и снова вызываю uploader.submit()
или вызываю его даже из Timer()
обратного вызова, он не работает, как при повторном щелчке мышью.
У вас есть идеи, что может быть не так?