Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查用户是否接受JavaScript中的文件下载_Javascript_Web_Download - Fatal编程技术网

检查用户是否接受JavaScript中的文件下载

检查用户是否接受JavaScript中的文件下载,javascript,web,download,Javascript,Web,Download,如何检查用户是否接受JavaScript文件下载。示例:如果网站弹出下载链接,web浏览器要求用户下载文件,我如何在该页面上确定用户是否接受下载?JavaScript将无法访问该信息。通常,web浏览器中的JavaScript仅限于与DOM交互 您可能可以在服务器端做一些事情来记录下载流的开始,但是,这可能非常棘手。在这种情况下,您可以使用、或等近实时地请求服务器提供此信息。您必须通过AJAX调用检查web服务器日志文件来间接执行此操作。这将需要您编写一些服务器端代码(并且您必须有权访问日志文件

如何检查用户是否接受JavaScript文件下载。示例:如果网站弹出下载链接,web浏览器要求用户下载文件,我如何在该页面上确定用户是否接受下载?

JavaScript将无法访问该信息。通常,web浏览器中的JavaScript仅限于与DOM交互


您可能可以在服务器端做一些事情来记录下载流的开始,但是,这可能非常棘手。在这种情况下,您可以使用、或等近实时地请求服务器提供此信息。

您必须通过AJAX调用检查web服务器日志文件来间接执行此操作。这将需要您编写一些服务器端代码(并且您必须有权访问日志文件)


还有第二种方法,那就是通过服务器端程序流式传输文件。这样,您就可以在文件开始流式传输时设置一个标志,并通过AJAX调用检索该标志。

可以很好地了解下载已经开始,但是你是对的,你不能判断用户是否接受了它。在第一种情况下有一个主要的缺陷:至少在Firefox中,只要我点击一个链接,下载就开始了。在我选择保存该文件的位置期间,在我按下“取消”按钮之前,该文件可能已(完全)下载。问题是,该文件将在HTTP响应的最开始时开始流式传输。在字节开始到达后,浏览器会弹出“如何处理文件”对话框。由于在从服务器到客户端的整个过程中都会进行缓冲,因此即使用户选择不保存文件,也可能会将大量文件发送出去。@Marcel这不是由浏览器决定的。服务器使用下载文件的实际字节响应HTTP请求。关于“保存/不保存”的决定,没有与任何浏览器进一步沟通。