zoukankan      html  css  js  c++  java
  • js 前端实现文件流下载的几种方式

    后端是用Java写的一个下载的接口,返回的是文件流,需求:点击,请求,下载

    利用iframe实现文件流下载

    //把上一次创建的iframe删掉,不然随着下载次数的增多页面上会一堆的iframe
    var haveIframe = $("iframe")
    if(haveIframe){
        haveIframe.remove();
    }
    downloadFile(url);
    function downloadFile(url) {   
       try{ 
            var elemIF = document.createElement("iframe");   
            elemIF.src = url+'?pSize=1&pNum=1&flag=1&sts=Y';   
            elemIF.style.display = "none";   
            document.body.appendChild(elemIF);   
        }catch(e){ 
            zzrw.alert("下载异常!");
        }     
    }
    

    利用from表单实现文件流下载

    //同样道理,把上一次创建的form删掉,不然随着下载次数的增多页面上会一堆的form
    var haveForm = $("#downloadfileform")
    if(haveForm){
        $("#downloadfileform").remove();
    }
    var $eleForm = $("<form id='downloadfileform' method='get'><input id='input_data' name='data' type='hidden'>" +
            "<input id='pSize' name='pSize' value='"+obj.pSize+"' type='hidden'>"+
            "<input id='pNum' name='pNum' value='"+obj.pNum+"' type='hidden'>"+
            "<input id='flag' name='flag' value='"+obj.flag+"' type='hidden'>"+
            "<input id='sts' name='sts' value='"+obj.sts+"' type='hidden'>"+
            "</form>");
    $eleForm.attr("action",url);
    
    $(document.body).append($eleForm);
    //提交表单,实现下载
    $eleForm.submit();
    
  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/Ivy-s/p/7473163.html
Copyright © 2011-2022 走看看