您好我会检测到我的文件下载结束。该文件由php方法生成。
我在js中尝试了3种方法: - 两个下载文件 - 一个检测php脚本的结尾
function downloadTcReport(e, flag) {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
window.location.href = "Phpz/download_tc.php?method=download_tc_report";
}
function downloadURL(url) {
var hiddenIFrameID = 'hiddenDownloader',
iframe = document.getElementById(hiddenIFrameID);
if (iframe === null) {
iframe = document.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
}
iframe.src = url;
}
jQuery(e).load("Phpz/download_tc.php?method=download_tc_all_current_cl", function() {
alert("Win !!!");
});
和我的PHP代码的一部分
if (@$_GET['method'] == 'download_tc_report') {
$obj = new downloadTC();
$content = $obj->get_last_report();
header("Content-Type: application/octet-stream");
header("Content-Length: " . strlen($content));
header("Content-Disposition: attachment; filename=\"tc_report.csv\"");
echo $content;
}
使用代码#1和#2我正确下载了没有更改位置的文件,但是我无法检测到文件生成的结束
使用代码#3,我检测到结束但是将我文件的字符串内容放在函数的“e”元素中。如果没有元素,或者没有。
所以我需要下载一个尚未生成的文件并检测文件何时发送(使用示例:用户点击按钮,加载div出现并在生成完成后消失) 有人有想法帮助我吗?
由于
编辑:
function downloadURL(url) {
jQuery.ajax({
type: "GET",
url: url,
beforeSend: function() {
console.log("Begin");
},
success: function() {
console.log("End");
}
,
error: function() {
}
});
此功能也不起作用。 检测结束和开始但不打开下载(例如,当您下载excel文件时它会询问您是否要使用Office ...在win上打开它)