有一个将当前页面表格导出为Excel的功能实现,但在后台我将Excel的存放路径写死了。现在要求能让用户自己选择存放路径,我想在前台jsp页面中通过点击得到存放路径,将它当成参数传给后台去处理。但是怎么得到这个路径就不太知道了,有没有哪位大神遇到过类似问题的 麻烦给一个解决思路啊??
你这问题描述的。。 我看了30分钟都没理解
是要得到你后台的路径还是得到用户想存的路径?
如果是得到用户想存的路径 1 让用户自己填 2 提供下载链接用户点完自己可以选 3用input type-file 让用户选
我就纳闷了 你要这个用户的路径有啥用 一般都是你后台生成excel文件后,提供下载链接 用户点击下载呀
得到用户想存的路径
@SH一03: 方案已给了啊
@snowjake123: excel文件已经生成了 但没有出现让用户下载的那个框,只是一堆乱码
try {
OutputStream os = response.getOutputStream();
wb.write(os);
byte[] content = ((ByteArrayOutputStream) os).toByteArray();
InputStream is = new ByteArrayInputStream(content);
// 设置response参数,可以打开下载页面
response.reset();
response.setContentType("application/x-msdownload;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("季度绩效工资分配.xls").getBytes(), "utf-8"));
ServletOutputStream out = response.getOutputStream();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
// Simple read/write loop.
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bos.flush();
} catch (final IOException e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "导出失败!");
e.printStackTrace();
}
我想用下载的形式让用户去选择路径保存 但没有出现下载的那个窗口,只是一堆乱码 是这样写不对吗?
在前台用window.location直接跳转了 表名换成了对应的英文名