日期:2014-05-19  浏览次数:20725 次

谁知道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" />
------解决方案--------------------
Java code

    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) {
            }
        }

------解决方案--------------------
Java code
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);