Tôi đang cố gắng tìm cách tải lên một tệp bằng cách sử dụng tiện ích Tải lên tệp GWT. Tôi đang sử dụng GWT và Google AppEngine với Java nhưng tôi muốn tải tệp lên máy chủ Linux của riêng mình. Tôi có đoạn code sau đây đã nhưng bây giờ tôi không thể tìm ra cách để nộp hồ sơ của tôi đến máy chủ Google AppServer và lưu nó vào máy chủ khác:Tải lên tệp cơ bản trong 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;
}
}
Bây giờ, những gì tôi cần phải làm gì tiếp theo? Tôi cần những gì để đưa vào web.xml và làm thế nào để tôi viết servlet của tôi vì vậy tôi có thể lưu trữ tập tin và gửi lại url của đối tượng đó (nếu có thể)
Tôi đã chính xác như OP: Dự án được lưu trữ trên GAE và tôi muốn tải lên tệp vào máy chủ web Linux của riêng tôi. OP đã chọn câu trả lời của bạn là câu trả lời hay nhất vì vậy tôi đoán nó đã giúp anh ta với câu hỏi của mình nhưng tôi không biết đặt lớp FileUpload ở đâu trong GAE cùng với các tệp dự án khác? Còn máy chủ Linux thì sao? Làm thế nào nó sẽ nhận được các tập tin? Và địa chỉ được chỉ định ở đâu? Và tên tập tin? Tôi bối rối bởi đoạn mã này. –
Không phải 10 MiB "10 * 1024 * 1024" không phải "10 * (1024 * 2)", hay là "megs" một tên thay thế cho 2 KiB? –
10 * (1024 * 2) là 20Kb, nhưng không phải 10Mb – Antonio