1

我在同一页面上有很多链接。这些链接将开始不同的下载。我想要做的是,当单击链接开始下载时,我还想将 iframe 位置更改为 php 页面以增加下载命中计数器。

代码需要onClick在每个链接上都有一个事件,因为我在同一页面上有很多。

我想要这样的东西:

<a href="download001.zip" onClick="iframe.location.href='hits_counter.php?file=download001>Start download 001</a><br>
<a href="download002.zip" onClick="iframe.location.href='hits_counter.php?file=download002>Start download 003</a><br>
<a href="download003.zip" onClick="iframe.location.href='hits_counter.php?file=download003>Start download 003</a><br>
...

必须激活这两个事件:下载文件并更改 iframe href

4

2 回答 2

0

您可以提供文件并从服务器端增加计数器。发送文件下载的代码如下。所以你的 hits_counter.php 可以是这样的

$file = $_GET['filename'];

if (file_exists($file)) {
  header('Content-Description: File Transfer');
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename='.basename($file));
  header('Content-Transfer-Encoding: binary');
  header('Expires: 0');
  header('Cache-Control: must-revalidate');
  header('Pragma: public');
  header('Content-Length: ' . filesize($file));
  ob_clean();
  flush();
  readfile($file);

  //increment counter based on file name
  exit;
}


来源 - http://php.net/manual/en/function.readfile.php

于 2013-06-28T02:44:55.633 回答
0

如果你有很多,onClick 不是解决方案

使用 jquery 你可以用这样的方式处理所有这些:

$("a").click(function(){
    $.get("hits_counter.php",{ file:$(this).attr("href") });
});

并且不再需要 iframe

于 2013-06-28T02:39:00.743 回答