form上传以及下载文件回调

https://www.cnblogs.com/huage-1234/p/7366363.html

https://blog.csdn.net/weixin_43165220/article/details/103906831

前端:调用export_data()

function get_download_frame() {
    var elemIF = document.createElement("iframe");
    elemIF.name = "download_frame";
    elemIF.id = "download_frame";
    elemIF.style.display = "none";
    
    document.body.appendChild(elemIF);
    return elemIF;
}


function export_data() {
    
    mask_loading("下载文件,请稍后......");
    var downloadToken= +new Date();

    var zexport_url = "downfile.aspx?downloadToken=" + downloadToken;
    var elemIF = get_download_frame();
    var zfilter = get_filter();
    submit_post(zfilter, zexport_url, elemIF.name);

    function checkToken() {     
        var token = getCookie("downloadToken");
        if (token && token == downloadToken) {
            clearTimeout(downloadTimer);
            unmask();
        }
    }    
    var downloadTimer = setInterval(checkToken, 1000);

}

function getCookie(cookieName) {    
    var strCookie = document.cookie;  
    var arrCookie = strCookie.split("; ");
    for (var i = 0; i < arrCookie.length; i++) {
        var arr = arrCookie[i].split("=");
        if (cookieName == arr[0]) {
            return arr[1];
        }
    }
    return "";
}



function submit_post(zfilter, url, target) {
    var f = document.createElement("form");
    f.name = "report";
    document.body.appendChild(f);
    for (var p in zfilter) {
        var i = document.createElement("input");
        i.type = "hidden";
        i.value = zfilter[p];
        i.name = p;
        f.appendChild(i);
    }
    f.action = url;
    f.target = target;
    f.method = "post";
    f.submit();

    f.parentNode.removeChild(f);
}
function get_filter() {
               var zfilter = {
            search1: ""
          };
    return zfilter;
}


后端

        excel.SaveAs(response.OutputStream);

                string downloadToken =  Request["downloadToken"];

                if (!string.IsNullOrEmpty(downloadToken))
                {
                    HttpCookie cookie = new HttpCookie("downloadToken", downloadToken);
                    cookie.Expires = System.DateTime.Now.AddMinutes(80);
                    cookie.Path = "/";
                    response.Cookies.Add(cookie);
                }

                response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

                string exportFileName = "MRP_" + string.Concat(
                   sourceTable.TableName,
                   DateTime.Now.ToString("yyyyMMddHHmmss"),
                   ".xlsx");

                response.AddHeader("content-disposition", string.Format("attachment;filename={0}", exportFileName));

  

原文地址:https://www.cnblogs.com/coolyylu/p/13992531.html