我使用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>
他们都没有工作。任何一种帮助都会非常感激。
答案 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();
}