如何使用PHP检查是不是在下载对话框上单击了保存按钮?

Posted

技术标签:

【中文标题】如何使用PHP检查是不是在下载对话框上单击了保存按钮?【英文标题】:How to check if the save button is clicked on download dialog box using PHP?如何使用PHP检查是否在下载对话框上单击了保存按钮? 【发布时间】:2013-09-16 05:30:57 【问题描述】:

我的网站上有一些文件可供用户下载。我使用 php header() 来读取文件并向用户显示下载对话框。

我必须增加下载次数。所以我需要检测文件是否真的被下载了。

可能是一种方法是知道用户是否单击了保存或取消按钮或在服务器上使用 PHP 的某种方法。

你能帮我解决这个问题吗?如何检查是否单击了保存按钮?

【问题讨论】:

您可以根据下载请求标头访问文件 url 的次数来创建下载计数。您无法检测文件是否已完全下载,因为它已经在浏览器的一侧,除非我认为您使用的是 flash 或 java applet 【参考方案1】:

您只能检测初始请求。无法检测文件是否下载成功。

基于此,您需要在生成下载时实现计数逻辑;在您进行 header() 调用的类似位置。

编辑:您可以跟踪用户的会话/远程 ip,并在特定时间范围内忽略对文件的后续请求:

【讨论】:

但是要计算下载链接的点击次数吗?什么时候不会发生真正的下载?【参考方案2】:

You can not detect whether the file successfully downloaded or not 根据您收到的答案...因为如果用户关闭了您的网站怎么办?那么您不再附加用户浏览器活动。因此无法跟踪文件是否已下载。

是的,您可以使用会话添加与访问计数器相同的计数器,正如您在开始学习 php 会话时在网站上看到的许多示例一样。

【讨论】:

【参考方案3】:

@Ben Rowe 的回答总结了这一点。

如果您担心带宽限制,可以使用像 Amazon's Cloudfront 这样的 CDN。第一年也是免费的

【讨论】:

以上是关于如何使用PHP检查是不是在下载对话框上单击了保存按钮?的主要内容,如果未能解决你的问题,请参考以下文章

在arcgis中如何把通过属性选择的要素提取保存

在单击提交按钮之前如何检查是不是生成了图像?

为啥网站下载的vpn文件苹果手机打不开

如何点击 IE 下载对话框,即(打开、保存、另存为...)

PHP如何强制下载文件

如果单击保存文件对话框上的取消按钮怎么办?