Я пытаюсь выяснить, как загрузить один файл с помощью виджета GWTs FileUpload. Я использую GWT и Google AppEngine с Java, но я хотел бы загрузить файл на свой собственный Linux-сервер. У меня есть следующий код, но уже сейчас я не могу понять, как представить свой файл на сервер Google AppServer и сохранить его на другой сервер:Загрузка основного файла в GWT
public class FileUploader{
private ControlPanel cp;
private FormPanel form = new FormPanel();
private FileUpload fu = new FileUpload();
public FileUploader(ControlPanel cp) {
this.cp = cp;
this.cp.setPrimaryArea(getFileUploaderWidget());
}
@SuppressWarnings("deprecation")
public Widget getFileUploaderWidget() {
form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);
// form.setAction(/* WHAT SHOULD I PUT HERE */);
VerticalPanel holder = new VerticalPanel();
fu.setName("upload");
holder.add(fu);
holder.add(new Button("Submit", new ClickHandler() {
public void onClick(ClickEvent event) {
GWT.log("You selected: " + fu.getFilename(), null);
form.submit();
}
}));
form.addSubmitHandler(new FormPanel.SubmitHandler() {
public void onSubmit(SubmitEvent event) {
if (!"".equalsIgnoreCase(fu.getFilename())) {
GWT.log("UPLOADING FILE????", null);
// NOW WHAT????
}
else{
event.cancel(); // cancel the event
}
}
});
form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
public void onSubmitComplete(SubmitCompleteEvent event) {
Window.alert(event.getResults());
}
});
form.add(holder);
return form;
}
}
Теперь, что мне нужно делать дальше? Что мне нужно поставить в web.xml и как я пишу мой сервлет, так что я могу хранить файл и вернуть URL этого объекта (если это возможно)
Я точно как OP: Проект размещается на GAE, и я хочу, чтобы загрузить файл на мой собственный веб-сервер Linux. ОП выбрал ваш ответ как лучший ответ, поэтому я думаю, что это помогло ему в его вопросе, но я не знаю, где разместить класс FileUpload, находится ли он в GAE вместе с другими файлами проекта? Как насчет сервера Linux? Как он получит файлы? А где указан адрес? И имя файла? Я смущен этой частью кода. –
Не 10 MiB "10 * 1024 * 1024" не "10 * (1024 * 2)", или это "megs" альтернативное имя для 2 KiB? –
10 * (1024 * 2) - 20Kb, но не 10Mb – Antonio