Ajax 下載文件

1. 使用ajaxajax的返回值類型是json,text,html,xml類型,或者能夠說ajax的發送,接受都只能是string字符串,不能流類型,因此沒法實現文件下載,強用會出現response衝突。若是非要使用ajax的話,只能經過返回值獲得生成的文件相關url。而後在回調函數裏經過建立一個iframe,並設置其src值爲文件url,或者一個對文件生成流的處理url,這樣操做來實現文件下載且頁面無刷新。html

2. 不使用ajax,經過dom動態操做或建立iframe,form的方式來實現,在下載文件的同時實現頁面不刷新,其中iframesrc能夠是文件地址url來直接下載文件,也能夠是流處理url經過response流輸出下載,form的是流處理url經過response流輸出下載,dom動態操做的時候實現文件下載,且頁面無刷新。要在下載的同時實現進度條的話,能夠建立一個定時任務,每隔必定時間就向後臺發送請求,經過公用的對象,好比session,來取得文件下載的處理進度。web




            var title=$("input[name='gjzSelect']").val();
            var rqTime = $(".ui-datepicker-time").val();
            var ddd= rqTime.split("一");
            var startTime=ddd[0];
            var endTime=ddd[1];
            
            var form = $("<form>");   //定義一個form表單
            form.attr('style', 'display:none');   //在form表單中添加查詢參數
            form.attr('target', '');
            form.attr('method', 'post');
            form.attr('action', "<%=basePath%>jiankong/madeExcel.do");
            
            var input1 = $('<input1>');
            input1.attr('type', 'hidden');
            input1.attr('name', 'startTime');
            input1.attr('value', startTime);
            
            var input2 = $('<input2>');
            input2.attr('type', 'hidden');
            input2.attr('name', 'endTime');
            input2.attr('value', endTime);
            
            var input3 = $('<input3>');
            input3.attr('type', 'hidden');
            input3.attr('name', 'title');
            input3.attr('value', title);
            
            $('body').append(form);  //將表單放置在web中
            form.append(input1);   //將查詢參數控件提交到表單上
            form.append(input2);
            form.append(input3);
            form.submit();
        <%-- 
        $.ajax({
            url:'<%=basePath%>jiankong/madeExcel.do',
            cache:false,
            data:{
                    'startTime':startTime,
                    'endTime':endTime,
                    'title' :title
                  },
            error:function (e){
                alert("導出失敗!");
            },
            success:function (data){
                 alert("導出成功!");
            }   
        }); 
        --%>
相關文章
相關標籤/搜索