如何使用链接打开本地文件以使用jsp访问本地文件

时间:2013-09-03 06:39:19

标签: java jsp

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

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

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

他们都没有工作。任何一种帮助都会非常感激。

1 个答案:

答案 0 :(得分: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();

}