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对象
}
}
url路径下载pdf资源和.png下载的方法原生js方法
最新推荐文章于 2024-03-29 02:57:17 发布