我想弄清楚如何使用GWTs FileUpload小部件上傳一個文件。我使用GWT和谷歌AppEngine與Java,但我想上傳文件到我自己的Linux服務器。 我有以下的代碼已經但是現在我無法弄清楚如何我的文件提交給谷歌服務器的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和我怎麼寫我的servlet,所以我可以存儲文件,並返回該對象的URL(如果可能)
我有確切的OP:該項目在GAE主辦,我要上傳該文件到我自己的Linux網絡服務器。 OP確實選擇了你的答案作爲最佳答案,所以我猜它確實幫助了他的問題,但我不知道把FileUpload類放在哪裏,它是否與其他項目文件一起放在GAE中?那麼Linux服務器呢?它將如何收到這些文件?指定的地址在哪裏?和文件名?我對這段代碼感到困惑。 – 2010-02-07 18:48:59
是不是10 MiB「10 * 1024 * 1024」而不是「10 *(1024 * 2)」,或者是「megs」是2 KiB的替代名稱? – 2011-02-16 14:36:42
10 *(1024 * 2)是20Kb,但不是10Mb – Antonio 2011-05-01 08:30:49