美文网首页
AJAX进行文件下载

AJAX进行文件下载

作者: 墨鱼丸子 | 来源:发表于2016-03-25 11:37 被阅读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();

    }

    }

    }

    }

    相关文章

      网友评论

          本文标题:AJAX进行文件下载

          本文链接:https://www.haomeiwen.com/subject/qzzrlttx.html