zoukankan      html  css  js  c++  java
  • js下载流文件

    js代码:

    //  获取时间戳
    let timestamp = new Date().getTime();
    // 获取XMLHttpRequest
    let xmlResquest = new XMLHttpRequest();
    //  发起请求
    xmlResquest.open("GET", `${API}/export/exportCheckingIn?uuid=${params.name}&startTime=${params.startTime}&endTime=${params.endTime}`, true);
    // 设置请求头类型
    xmlResquest.setRequestHeader("Content-type", "application/json");
    //  设置请求token
    // xmlResquest.setRequestHeader(
     
    // );
    xmlResquest.responseType = "blob";
    //  返回
    xmlResquest.onload = function (oEvent) {
        let content = xmlResquest.response;
        // 组装a标签
        let elink = document.createElement("a");
        // 设置下载文件名
        elink.download = timestamp + ".xlsx";
        elink.style.display = "none";
        let blob = new Blob([content]);
        elink.href = URL.createObjectURL(blob);
        document.body.appendChild(elink);
        elink.click();
        document.body.removeChild(elink);
    };
    
    xmlResquest.send();

    c#后台代码:

            public static HttpResponseMessage Download(string filePath)
            {
                string fullPath = BasePath + filePath;
    
                string fileName = Path.GetFileName(fullPath);
                FileStream fileStream = new FileStream(fullPath, FileMode.Open);
    
                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
                response.Content = new StreamContent(fileStream);
    
                response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
    
                MediaTypeHeaderValue contentType = response.Content.Headers.ContentType;
                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = HttpUtility.UrlEncode(fileName)
                };
    
                response.Headers.Add("Access-Control-Expose-Headers", "FileName");
                response.Headers.Add("FileName", HttpUtility.UrlEncode(fileName));
    
                return response;
            }
  • 相关阅读:
    Vue3教程:Vue3.0 + Vant3.0 搭建种子项目
    硬盘
    org.apache.commons.beanutils.ConversionException: No value specified
    软件设计流程
    CDN使用
    The valid characters are defined in RFC 7230 and RFC 3986
    java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found.
    joomla安装
    LAMP环境
    开源软件
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/13402697.html
Copyright © 2011-2022 走看看