某处抄来的点击生成可下载csv文件

前台js定义函数

$.exportCsv = function(sth) {
	var url = 'downloadCsv/';
	var params = {};
	params.test = "test";

    var form = $('<form method="POST" action="' + url + '">');
    $.each(params, function(k, v) {
    	//判断v是否为数组
    	if (Object.prototype.toString.call(v) == '[object Array]') {
    		v.forEach(function(vv){
    			form.append($('<input type="hidden" name="' + k +
                        '[]" value="' + vv + '">'));
    		})
    	} else {
    		form.append($('<input type="hidden" name="' + k +
                    '" value="' + v + '">'));
    	}
    });
    $('body').append(form);
    form.submit();
}
调用$.exportCsv("test")将所有参数扔进一个表单里并提交表单

后台生成文件

@RequestMapping(value = {"/downloadCsv"})
public void downloadCsv(HttpServletRequest request, HttpServletResponse response) {
	try {
		String test = request.getParameter("test");
		response.setContentType("text/csv");
		
		String filename = "测试.csv";
		response.setHeader("Content-disposition", "attachment; filename=\""
				+ new String(filename.getBytes("UTF-8"), "ISO_8859_1") + "\"");
		
		OutputStream outputStream = response.getOutputStream();
		String header = "col1, col2\n";//第一行的内容
		outputStream.write(header.getBytes());
		for (int i = 0; i < 10; i++) {
			String temp = "left" + ", " + "right" + "\n";
			outputStream.write(temp.getBytes());
		}
        outputStream.flush();
        outputStream.close();
	} catch (IOException e) {
		logger.error("", e);
	}
}

 
 
传回来的outputStream会带有csv文件,会自动启动浏览器的下载程序




你可能感兴趣的:(java,js,csv)