Jquery File download ($.fileDownload)

后端 未结 5 748
清酒与你
清酒与你 2021-02-06 04:52

I am using jquery file download ..

the code is as follows :

 function downloadFile(){
var downloadOptions = {
preparingMessageHtml: \"We are preparing y         


        
相关标签:
5条回答
  • 2021-02-06 05:24

    In order to make JQuery knows the file download just ocurred, your response header must contains Set-Cookie: fileDownload=true; path=/.

    In Java:

    response.setHeader("Set-Cookie", "fileDownload=true; path=/");
    
    0 讨论(0)
  • 2021-02-06 05:29

    Here is source code of jquery file download ..

    $(function () {
        $(document).on("click", "a.fileDownloadCustomRichExperience", function () {
    
            var $preparingFileModal = $("#preparing-file-modal");
    
            $preparingFileModal.dialog({ modal: true });
    
            $.fileDownload($(this).attr('href'), {
                successCallback: function (url) {
    
                    $preparingFileModal.dialog('close');
                },
                failCallback: function (responseHtml, url) {
    
                    $preparingFileModal.dialog('close');
                    $("#error-modal").dialog({ modal: true });
                }
            });
            return false; //this is critical to stop the click event which will trigger a normal file download!
        });
    });
    
    <div id="preparing-file-modal" title="Preparing report..." style="display: none;">
        We are preparing your report, please wait...
    
        <div class="ui-progressbar-value ui-corner-left ui-corner-right" style="width: 100%; height:22px; margin-top: 20px;"></div>
    </div>
    
    <div id="error-modal" title="Error" style="display: none;">
        There was a problem generating your report, please try again.
    </div>
    
    0 讨论(0)
  • 2021-02-06 05:32

    Some browsers also need you to reset response or your download will not work!

    response.reset();
    
    0 讨论(0)
  • 2021-02-06 05:44

    On sucess;

    response.setHeader("Set-Cookie", "fileDownload=true; path=/");
    response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
    

    On error

    response.setHeader("Set-Cookie", "fileDownload=false; path=/");
    response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
    

    Use "Cache-Control" only if will exists anothers requests.

    0 讨论(0)
  • 2021-02-06 05:47

    please try like this

    function exportToExcelTest() {
            var region = $('#ddlRegion').val();
            var hrinfo = $('#hrinfodropdown').val();
            if (region != null) {
                $('#ExportOptions').modal('hide');
                $.blockUI({ message: '<h1>Please wait generating excel data...</h1>' });
                //$.blockUI({ message: '<h1><img src="../Images/ajax_loader_blue_350.gif" /> Just a moment...</h1>' });
                $.blockUI({ css: { backgroundColor: '#f00', color: '#fff'} });
                var myData = region + ':' + hrinfo;
    
                $.fileDownload('Excel.ashx', {
                    httpMethod: "POST",
                    data: { data: myData },
                    successCallback: function (url) {
                        //$("div#loading").hide();
                        //alert('ok');
                        //response.setHeader("Set-Cookie", "fileDownload=false; path=/");
                        $.unblockUI();
                    },
                    prepareCallback: function (url) {
                        //alert('ok');
                        //response.setHeader("Set-Cookie", "fileDownload=true; path=/");
                        $.unblockUI();
                    },
                    failCallback: function (responseHtml, url) {
                        //alert('ok');
                        // $("div#loading").hide();
                        // alert('Error while generating excel file');
                        //response.setHeader("Set-Cookie", "fileDownload=false; path=/");
                        $.unblockUI();
                    }
                });          
            }
            else {
                alert('Please select a region....');
                return false;
            }
        }
    

    Referance from : https://www.experts-exchange.com/questions/28713105/Jquery-fileDownload-successcallback-not-working.html

    I hope it's Work for you..

    0 讨论(0)
提交回复
热议问题