0

Struts 2アノテーションを使用してファイルをダウンロードする例を誰かが手伝ってくれるかどうか尋ねたい.

アクションクラスでこれを試しました

public class MyClass {
private InputStream       fileInputStream;

    private String      fileName;

    @Override
    @Action(AbstractBasisAction.VIEW)
    public String view() {
    System.out.println("HoursCycleDownloadFrameAction: view");
    super.view();
    return SUCCESS;
    }

    public InputStream getFileInputStream() {
    return fileInputStream;
    }

    @Action(value = "downloadFile", results = { @Result(name = "success", type = "stream", params = { "contentType", "application/octet-stream", "inputName", "fileInputStream", "contentDisposition", "filename=\"${fileName}\"", "bufferSize", "1024" }) })
    public String downloadFile() throws Exception {
    fileName = "license.txt";
    fileInputStream = new FileInputStream(new File("C:\\", fileName));
    return SUCCESS;
    }
}

これが私のページの内容です

<s:url id="fileInputStream" namespace="/myClass" action="downloadFile" ></s:url>

Download file - <s:a href="%{fileInputStream}">lisence.txt</s:a>

しかし、今の問題は、アクションメソッド名でファイルをダウンロードすることです。ファイル名が downloadFile.action であることを意味します。誰でもそれで私を助けることができますか?

4

1 に答える 1

0

1) .txt ファイルの場合は、"contentType", "application/octet-stream" 代わりに"contentType", "plain/text";

private String fileName;2)変数のゲッターが必要です。

3)"contentDisposition", "filename=\"${fileName}\""拡張機能を含める必要があり、最終的にはinline(デフォルト、ブラウザで開く) またはattachment(ダウンロードするか、クライアント アプリケーションで開くかを尋ねる)、たとえば

"contentDisposition", "attachment; filename=\"${fileName}.txt\""

于 2012-12-20T14:27:26.177 に答える