0

ファイルのダウンロードを実装する必要があります。サーバー側のファイルの URL を直接ダウンロードする必要はありません。ファイルを開いて応答のストリームに書き込むサーブレットを作成しました。 、応答応答) 応答を受信すると呼び出されます。必要な操作は、ストリーム内のファイルをクライアント コンピューターにダウンロードすることです。

これに関して私を助けることができますか?

4

3 に答える 3

2

試しましたWindow.open(ServletUrl, "_parent", "location=no")か?

そして、「application/exe」への応答でContentTypeを設定してみてください

これにより、ユーザーは保存または実行するように求められます。

サーブレット コード:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String filename = URLDecoder.decode(request.getPathInfo(), "UTF-8");
    File file = new File("/path/to/files", filename);
    response.setContentType("application/x-download");
    response.setHeader("Content-Disposition", "attachment; filename=" + filename);
    response.setHeader("Content-Length", file.length());

    BufferedInputStream input = null;
    BufferedOutputStream output = null;

    try {
        input = new BufferedInputStream(new FileInputStream(file));
        output = new BufferedOutputStream(response.getOutputStream());

        byte[] buffer = new byte[8192];
        for (int length = 0; (length = input.read(buffer)) > 0;) {
            output.write(buffer, 0, length);
        }
    } finally {
        if (output != null) try { output.close(); } catch (IOException ignore) {}
        if (input != null) try { input.close(); } catch (IOException ignore) {}
    }
}
于 2010-12-15T12:02:21.683 に答える
2

_blank、_parent、_top、_self のいずれかを使用できます

  • 「_blank」属性により、ハイパーリンクの「ターゲット」が新しい
  • 「_top」属性により、ハイパーリンクの「ターゲット」が現在定義されているすべてのフレームセットの最上位に表示されます。
  • 「_parent」属性により、ハイパーリンクの「ターゲット」が現在のフレームセットの領域全体に表示されます。
  • 「_self」属性により、ハイパーリンクの「ターゲット」が現在のフレームで開きます。

ソース

于 2010-12-17T12:09:23.787 に答える
0

GWT RPCとデータURIだけを使用して、サーブレットなしでこれを行うことができます。

  1. GWTRPCメソッドがファイルの内容またはデータを返すようにしてファイルを生成します。
  2. クライアント側で、受信したファイルコンテンツを使用してデータURIをフォーマットするか、データコンテンツを生成します。
  3. フォーマットされたDataURIWindow.openを渡すファイル保存ダイアログを開くために使用します。

データURIの使用法を理解するには、このリファレンスを参照してください。

jQueryでcsvにエクスポート

于 2013-01-04T14:10:04.133 に答える