jsp 文件下載

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

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


我想下载自己指定的D:/zzz/下的文件,该怎么做!!! 求高手指点
...全文
163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
貌似不能确定用户的下载路径,那是用户自己选的

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧