首页 新闻 会员 周边

jsp中通过点击得到文件路径显示在相应的文本框中

0
悬赏园豆:5 [已关闭问题] 关闭于 2016-03-29 14:36

 有一个将当前页面表格导出为Excel的功能实现,但在后台我将Excel的存放路径写死了。现在要求能让用户自己选择存放路径,我想在前台jsp页面中通过点击得到存放路径,将它当成参数传给后台去处理。但是怎么得到这个路径就不太知道了,有没有哪位大神遇到过类似问题的 麻烦给一个解决思路啊??

SH一03的主页 SH一03 | 初学一级 | 园豆:185
提问于:2016-03-15 23:46
< >
分享
所有回答(2)
0

你这问题描述的。。 我看了30分钟都没理解

是要得到你后台的路径还是得到用户想存的路径?

如果是得到用户想存的路径  1 让用户自己填  2 提供下载链接用户点完自己可以选  3用input type-file 让用户选 

我就纳闷了  你要这个用户的路径有啥用   一般都是你后台生成excel文件后,提供下载链接  用户点击下载呀

snowjake123 | 园豆:469 (菜鸟二级) | 2016-03-16 15:24

得到用户想存的路径

支持(0) 反对(0) SH一03 | 园豆:185 (初学一级) | 2016-03-16 16:02

@SH一03: 方案已给了啊

支持(0) 反对(0) snowjake123 | 园豆:469 (菜鸟二级) | 2016-03-16 16:19

@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();
            }

我想用下载的形式让用户去选择路径保存  但没有出现下载的那个窗口,只是一堆乱码    是这样写不对吗?

支持(0) 反对(0) SH一03 | 园豆:185 (初学一级) | 2016-03-16 16:32
0

在前台用window.location直接跳转了 表名换成了对应的英文名

SH一03 | 园豆:185 (初学一级) | 2016-03-29 14:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册