检测下载结束 - 使用href

时间:2013-10-29 13:58:43

标签: javascript php jquery dom

您好我会检测到我的文件下载结束。该文件由php方法生成。

我在js中尝试了3种方法:   - 两个下载文件   - 一个检测php脚本的结尾

1

function downloadTcReport(e, flag) {
e.preventDefault ? e.preventDefault() : e.returnValue = false;
window.location.href = "Phpz/download_tc.php?method=download_tc_report";

}

2

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;

}

3

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上打开它)

0 个答案:

没有答案