-1

我使用 struts 1.2 开发了一个 Web 应用程序,我需要以链接格式显示本地系统(C:\Testing)中的文件。当用户单击文件名时,它会自动打开(无下载选项)。文件可以是任何类型(pdf,excel,.doc ...)我试过了

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

或者

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

他们都没有工作..任何形式的帮助将不胜感激。

4

1 回答 1

0

从网页对放置在磁盘上的文件进行静态链接是一个坏主意,因此除非您的文件夹或文件位于 Web 应用程序的文件夹中,否则 jsp 不允许您这样做。

编写 servlet 或 struts 的动作来处理下载就可以了。

现在这里是关于 servlet 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 回答