0

私が望むのは、ユーザーが自分のローカル ドライブで完全なパスを選択できることです。その後、ファイル (現在、アプリの war フォルダーにあります) がその選択されたユーザーの場所に保存されます。

GWT でファイル アップロードを使用してファイルをアップロードしていますが、正常に動作しています。ダウンロードにも FileUpload を使用しますか?

また、ユーザーが選択した場所 (d:\downloadfolder など) を取得する可能性がある場合の 2 番目のオプションについては、私の問題は解決します。残りは私が行います。

以下はアップロード用のコードです。ダウンロードを手伝ってください

final String UPLOAD_ACTION_URL = GWT.getModuleBaseURL() + "upload";
initWidget(panelImages);
final FormPanel form = new FormPanel();
form.setAction(UPLOAD_ACTION_URL);

form.setEncoding(FormPanel.ENCODING_MULTIPART);
form.setMethod(FormPanel.METHOD_POST);

VerticalPanel panel = new VerticalPanel();
form.setWidget(panel);

FileUpload upload = new FileUpload();
upload.setName("uploadFormElement");
panel.add(upload);

// Add a 'submit' button.
panel.add(new Button("Submit", new ClickHandler() {
    public void onClick(ClickEvent event) {
        form.submit();
    }
}));

form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
    public void onSubmitComplete(SubmitCompleteEvent event) {
        if(event.getResults().contains("DataBase Restored")){
            Window.alert("Database Restored !");
        }
    }
});

panelImages.add(form);
4

1 に答える 1

0

JavaScript はローカル ハード ドライブにアクセスできないため、GWT からこれを行うことはできません。最善の方法は、通常どおりダウンロードを開始することです (たとえば、ユーザーがクリックできるファイルへのリンクを表示します)。ブラウザの設定に応じて、ファイルの場所を選択するか、デフォルトの場所にダウンロードします。JavaScriptだけではその場所を知ることはできません。

これがプロジェクトの要件である場合は、Java やフラッシュなどのより重いプラグインを含める必要があると思います。

于 2013-02-27T15:15:28.727 に答える