AJAX进行文件下载

2016-03-25  本文已影响0人  墨鱼丸子

JQuery的ajax函数的返回类型只

有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但可以用js

生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。

function fileModelDownload() {var form = $("

"); //定义一个form表单form.attr('style', 'display:none'); //在form表单中添加查询参数form.attr('target', '');form.attr('method', 'post');form.attr('action', "fupUser/fileModelDownload.do");var input1 = $('');input1.attr('type', 'hidden');input1.attr('name', 'strUrl');$('body').append(form); //将表单放置在web中form.append(input1); //将查询参数控件提交到表单上form.submit();}

后台

// 文件模板下载

@RequestMapping("/fupUser/fileModelDownload")

@ResponseBody

public void fileModelDownload(HttpServletRequest request, HttpServletResponse response) throws IOException{

File file = new File(request.getSession().getServletContext().getRealPath("/") + "/download/fupUser.txt");

if(file.exists()){

OutputStream os = response.getOutputStream();

try {

response.reset();

response.setHeader("Content-Disposition", "attachment; filename=fupUser.txt");

response.setContentType("application/octet-stream; charset=utf-8");

os.write(FileUtils.readFileToByteArray(file));

os.flush();

} finally {

if (os != null) {

os.close();

}

}

}

}

上一篇 下一篇

猜你喜欢

热点阅读