多份csv文件输出问题

litex 2006-05-08 01:06:34
问题如下:
点击我的页面上的button,到服务器端会生成多份csv文件,如何在客户端多次弹出保存对话框,能够将生成的csv文件全部保存到客户端,我现在是在逻辑里循环调用如下代码
public void pdfOut(HttpServletResponse res, String pdfFullPathName)
throws THBException
{

String fileName = pdfFullPathName;
int pos = 0;
while (pos != -1) {
pos = fileName.indexOf("\\");
if (pos >= 0) {
fileName = fileName.substring(pos + 1);
}
}

//ファイル出力
OutputStream os = null;
final File f = new File(pdfFullPathName);
try {
FileInputStream fis = new FileInputStream(pdfFullPathName);
final byte[] buff = new byte[4096];
res.setContentType("application/pdf");
res.setHeader("Content-disposition",
"attachment;filename=" + fileName);
res.setContentLength((int) f.length());
try {
os = (OutputStream)res.getOutputStream();
while (true) {
final int len = fis.read(buff, 0, buff.length);
if (len == -1) {
break;
}
os.write(buff, 0, len);
}
} catch (IOException e) {
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e1) {
fis = null;
}
}
}
} catch (FileNotFoundException e) {
} finally {
if (os != null) {
try {
os.flush();
os.close();
} catch (IOException e) {
os = null;
}
}
}

f.delete();
}
但是当循环时就会出现异常“递交的response不能再forward”,请各位大虾指点一二,谢谢!
...全文
136 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
robbyan 2006-05-10
  • 打赏
  • 举报
回复
把所有csv文件先打个包?可能不符合要求
xdy3008 2006-05-08
  • 打赏
  • 举报
回复
学习·
litex 2006-05-08
  • 打赏
  • 举报
回复
感谢IceCraft(心淡情浓) ,不过客户需求不肯改变,继续等
IceCraft 2006-05-08
  • 打赏
  • 举报
回复
当然,在我说的这种分解办法的基础上,你可以进一步完善来实现你要的功能。
在这个显示链接的页面上用一个javascript,自动循环访问你的后台生成程序,每次循环时传入参数,表明要下载第几个文件,这样就可以同时弹出多个下载窗口,不过如果文件多了,似乎就有些混乱了。
IceCraft 2006-05-08
  • 打赏
  • 举报
回复
你可以考虑把这个功能分解一下。
点击按钮后进入一个页面,程序会生成多少个csv文件,则这个页面上放多少个链接,用户如果要下载就点击链接,然后就是调用你的生成代码来产生一个文件发送给用户下载。

更好一点的方式就是用户点击按钮,程序就立刻生成这些文件并保存在服务器的目录内,然后跳到一个页面,页面中有这些文件的链接,用户点击链接就下载文件。这样的话服务器就会存储很多的文件,可能还需要一个定时程序来自动删除已经不要的文件等。
ruanjiantaotao 2006-05-08
  • 打赏
  • 举报
回复
关注~

81,092

社区成员

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

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