-1

struts 1.2 を使用して Web アプリケーションを開発しました。ローカル システム (C:\Testing) 内のファイルをリンク形式で表示する必要があります。ユーザーがファイル名をクリックすると、ファイルは自動的に開きます (ダウンロード オプションはありません)。 type(pdf,excel,.doc...) やってみた

<LI><A HREF="file:<%=filePath%>"><%=fileName%></A></LI>

また

<LI><A HREF="file:///<%=filePath%>"><%=fileName%></A></LI>

それらのどれも機能しませんでした..どんな種類の助けも本当に感謝しています.

4

1 に答える 1

0

Web ページからディスクに配置されたファイルへの静的リンクを作成するのは悪い考えです。そのため、フォルダーまたはファイルが Web アプリのフォルダー内にない限り、jsp はそれを許可できません。

ダウンロードを処理するためのサーブレットまたはストラットのアクションを作成すると、ダウンロードが行われます。

次に、サーブレット process.struts のアクションについての例を示します。

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    String fileName = "filepath";
    File file = new File(fileName);
    FileInputStream fis = new FileInputStream(file);
    byte[] buffer = new byte[fis.available()];
    fis.read(buffer);
    fis.close();

    resp.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName,"utf-8"));
    resp.addHeader("Content-Length",String.valueOf(file.length()));
    OutputStream out = new BufferedOutputStream(resp.getOutputStream());
    resp.setContentType("application/octet-stream");
    out.write(buffer);
    out.flush();
    out.close();

}
于 2013-09-03T07:09:02.827 に答える