yn_img_tool/src/main/resources/static/js/synthesisQuery/synthesisQueryCommon.js

137 lines
5.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**放大*/
function viewImg(item) {
layer.photos({
shade: 0.5,
footer: false,
photos: {
"title": "图片预览",
"start": 0,
"data": [
{
"pid": 1,
"src": imgUrl + item.originalFilePath + "?token=" + tokens,
}
]
},
});
}
/**原图下载*/
function imgDownLoad(item) {
let orginalPath = item.originalFilePath;
let obj = {
imgPath: orginalPath,
}
let loadingMsg = layer.msg("原图下载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
let url = dataUrl + "/common/download/downloadImage?token=" + tokens + "&encryptedData=" + encodeURIComponent(encryptCBC(JSON.stringify(obj)));
let xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8')
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
let blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = orginalPath.substring(orginalPath.lastIndexOf('/') + 1, orginalPath.length); // 文件名
} else {
layer.msg("原图下载发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000});
}
a.click();
window.URL.revokeObjectURL(url);
};
// xhr.send(params);
xhr.send();
}
/**水印下载*/
function waterImgDownLoad(item) {
/* let orginalPath = item.originalFilePath;
let obj = {
imgPath: orginalPath,
}
let loadingMsg = layer.msg("水印图片下载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
let url = dataUrl + "/common/download/downloadImage?token=" + tokens + "&encryptedData=" + encodeURIComponent(encryptCBC(JSON.stringify(obj)));
let xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader('Content-Type','application/json;charset=UTF-8')
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
let blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = orginalPath.substring(orginalPath.lastIndexOf('/') + 1,orginalPath.length); // 文件名
} else {
layer.msg("水印图片下载发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000});
}
a.click();
window.URL.revokeObjectURL(url);
};
// xhr.send(params);
xhr.send();*/
function downloadImage(imageUrl) {
let orginalPath = item.originalFilePath;
let obj = {
imgPath: orginalPath,
}
$.ajax({
url: dataUrl + "/common/download/downloadImage?token=" + tokens,
type: 'GET',
data: {
encryptedData: encodeURIComponent(encryptCBC(JSON.stringify(obj)))
},
xhrFields: {
responseType: 'blob' // 重要指定响应类型为blob
},
success: function (data, status, xhr) {
// 检查是否是blob数据图片
if (data instanceof Blob) {
// 创建临时URL用于下载
var blobUrl = URL.createObjectURL(data);
// 创建下载链接
var a = document.createElement('a');
a.href = blobUrl;
a.download = orginalPath.substring(orginalPath.lastIndexOf('/') + 1,orginalPath.length); // 提取文件名
document.body.appendChild(a);
a.click();
// 清理
setTimeout(function () {
document.body.removeChild(a);
URL.revokeObjectURL(blobUrl);
}, 100);
} else {
// 如果返回的不是blob可能是错误信息
console.error('服务器返回意外响应:', data);
alert('下载失败: 服务器返回无效数据');
}
},
error: function (xhr, status, error) {
// 尝试解析错误信息
var errorMsg = '下载失败';
if (xhr.responseText) {
try {
var errorResponse = JSON.parse(xhr.responseText);
errorMsg = errorResponse.message || errorMsg;
} catch (e) {
errorMsg = xhr.responseText;
}
}
alert(errorMsg);
}
});
}
// 使用示例
$('#download-btn').click(function () {
var imageUrl = $('#image-url').val();
downloadImage(imageUrl);
});
}