url路径下载pdf资源和.png下载的方法原生js方法

 GetFieldUrl("传入FileId文件的id去下载文件相关的信息");
function GetFieldUrl(FileId) {

    console.log(baseUrl + "api/FileManage/GetFileInfos?fileIds=" + FileId);

    $.ajax({
        contentType: 'application/json',
        //  data: JSON.stringify(entity),
        url: baseUrl + "api/FileManage/GetFileInfos?fileIds=" + FileId,
        type: "get",
        headers: {
                Accept: $.cookie('learn_token')
            },
        complete: function (XMLHttpRequest, textStatus) {
            //console.log("complete " + textStatus);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            var status = XMLHttpRequest.status;
            if (status == '403') {
            }
           
        },
        success: function (data, textStatus, XMLHtaa) {
          // top.window.open(baseUrl + data.resultdata[0].FilePath, '_blank', 'download='+baseUrl + data.resultdata[0].FilePath)  //这些都是url文件的路径并不是二进制流,所以呢 一打开就在浏览器中显示了并非下载文件。
           //window.open(baseUrl + data.resultdata[0].FilePath);
          
            //window.location.href = baseUrl + data.resultdata[0].FilePath;
         //   downloadUrl(baseUrl + data.resultdata[0].FilePath,baseUrl + data.resultdata[0].FileName);
/***************下面是接口下载的数据*************************************/          
{
    "type": 1,
    "errorcode": 0,
    "message": "获得文件信息成功:a12f2b2b-f521-490d-bd7b-67f3c445a40e",
    "resultdata": [
        {
            "FileId": "a12f2b2b-f521-490d-bd7b-67f3c445a40e",
            "FolderId": "81b7f3af-d615-4749-b3a8-729db178779b",
            "FileName": "louu.png",
            "FilePath": "/UpFile/CSedaPollutionCensus/20231214/20231214111209louu.png",
            "FileSize": "5779",
            "FileExtensions": "png",
            "FileType": "png",
            "IsShare": null,
            "ShareLink": null,
            "ShareCode": null,
            "ShareTime": null,
            "DownloadCount": null,
            "IsTop": null,
            "SortCode": null,
            "DeleteMark": 0,
            "EnabledMark": 1,
            "Description": null,
            "CreateDate": "2023-12-14 11:12:09",
            "CreateUserId": "System",
            "CreateUserName": "超级管理员",
            "ModifyDate": null,
            "ModifyUserId": null,
            "ModifyUserName": null,
            "MD5": "937C8272E7DA2D19B19827D9C0400FB5"
        }
    ]
}
/***************下面是接口下载的数据*************************************/  
             var xhr = new XMLHttpRequest();//创建 XMLHttpRequest 对象
             xhr.open('get',baseUrl + data.resultdata[0].FilePath, true);//规定请求的类型、URL 以及是否异步处理请求。三个参数分别是 method:请求的类型;GET 或 POST url:文件在服务器上的位置 async:true(异步)或 false(同步)
             xhr.setRequestHeader('Content-Type',baseUrl + data.resultdata[0].FileName);//设置请求头
             xhr.responseType = "blob";//返回的数据类型 这儿需要blob对象
             xhr.onload = function () {//请求成功回调函数
                  if (this.status == 200) {
                    //接受二进制文件流
                      var blob = this.response;
                      downloadExportFile(blob, data.resultdata[0].FileName, data.resultdata[0].FileType)
                  }
                }
             xhr.send();//将请求发送到服务器
        }
    });

}
 function downloadExportFile(blob, tagFileName, fileType) { //将文件下载下来
          let downloadElement = document.createElement('a');
          let href = blob;
          if (typeof blob == 'string') {
            downloadElement.target = '_blank';
          } else {
            href = window.URL.createObjectURL(blob); 
          }
          downloadElement.href = href;
          downloadElement.download = tagFileName + moment(new Date().getTime()).format('YYYYMMDDhhmmss') + '.' + fileType; //下载后文件名
          document.body.appendChild(downloadElement);
          downloadElement.click(); //点击下载
          document.body.removeChild(downloadElement); //下载完成移除元素
          if (typeof blob != 'string') {
            window.URL.revokeObjectURL(href); //释放掉blob对象
          }

   }





你可能感兴趣的:(pdf,javascript,开发语言)