谁知道java的下载功能怎么用啊
我jsp页面上有一个按钮,点击是将当前jsp页面上的表格导出为excel,我现在导出之后只能存在我自己服务器这里,怎么样可以将导出的文件不存在我这,直接保存到用户端的主机上呢,这应该属于一个下载的功能吧
[解决办法]
我大概是这么实现的 在目录下新建个文件夹excel 然后把你要导出的jsp页面复制一下在excel目录下 新的jsp文件里面需要加这段代码,当然进这个页面之前还是要进行后台查询的。具体看你用什么实现的了
java.text.SimpleDateFormat tempDate = new java.text.SimpleDateFormat(
"yyyyMMddHHmmss");
String time = tempDate.format(new Date());
String fileName = "订单信息_" + time + ".xls";
fileName = new String(fileName.getBytes("GBK"), "ISO8859_1");
response.setHeader("Content-Disposition", "attachment;filename="
+ fileName);
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
head中间加上这个 防止中文乱码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
[解决办法]
response.setContentType("application/msword;charset=utf-8"); try { response.setHeader("Content-Disposition", "attachment;filename="+new String(wordName.getBytes("gbk"),"ISO8859_1")); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } BufferedInputStream bis = null; BufferedOutputStream bos = null; try { bis = new BufferedInputStream(new FileInputStream("文件地址")); bos = new BufferedOutputStream(response.getOutputStream()); int n = 0; byte b[] = new byte[5 * 1024]; while ((n = bis.read(b)) != -1) { bos.write(b, 0, n); } } catch (Exception e) { e.printStackTrace(); } finally { try { bis.close(); bos.close(); } catch (Exception e) { } }
[解决办法]
String fileName = "数据转换表信息导出.xls"; if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) { fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); // firefox浏览器 } else if (request.getHeader("User-Agent").toUpperCase() .indexOf("MSIE") > 0) { fileName = URLEncoder.encode(fileName, "UTF-8"); // IE浏览器 } else { fileName = Utils.toUtf8String(fileName); } response.setHeader("Content-Disposition", "attachment;filename=" + fileName);