jsp 文件下載

ppwl123 2011-02-25 10:16:46
return inputStream=ServletActionContext.getServletContext().getResourceAsStream("D:/zzz/"+dname);----失败

getResourceAsStream()只能获得webapp下的路径.


我想下载自己指定的D:/zzz/下的文件,该怎么做!!! 求高手指点
...全文
126 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cw_tkong 2011-02-25
http://www.360doc.com/content/10/0627/12/1523800_35521207.shtml

可以用这种方式 解决 我就是用这种流方式解决的
文件中的 filenamedownload可直接写成 你要访问的 服务器路径
回复
crystalcup 2011-02-25
好像除了getResourceAsStream()以外,还有其他获取绝对路径的一个方法,搜一下,具体什么我也忘了。
回复
jamespengo 2011-02-25
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String path = request.getParameter("checkName");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;

// 如果是从服务器上取就用这个获得系统的绝对路径方法。 String filepath =
// servlet.getServletContext().getRealPath("/" + path);
File file = new File(path);
bis = new BufferedInputStream( new FileInputStream(file));
bos = new BufferedOutputStream(response.getOutputStream());
// 这个就就是弹出下载对话框的关键代码
response.setHeader("Content-disposition", "attachment;filename="
+ URLEncoder.encode(path, "utf-8"));
int bytesRead = 0;
// 这个地方的同上传的一样。都是用输入流进行先读,然后用输出流去写,唯一不同的是我用的是缓冲输入输出流
byte[] buffer = new byte[8192];
while ((bytesRead = bis.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);
}
bos.flush();
bis.close();
bos.close();
return null;
}


path 你自己改
回复
jamespengo 2011-02-25
IO流,先用输入流读,再用输出流写出来就可以了
回复
buzuotaxuan 2011-02-25
封装一个读入的流
回复
CoffeePhoton 2011-02-25
貌似不能确定用户的下载路径,那是用户自己选的
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2011-02-25 10:16
社区公告
暂无公告