【问题标题】:HTML5 Download with javascript onlick combinedHTML5 下载与 javascript onclick 相结合
【发布时间】:2017-05-08 04:43:42
【问题描述】:

我正在使用以下代码强制下载 mp3 文件

<a id="download" href="http://locationtomp3file.mp3" download>Start Download</a>

以上代码可以顺利下载。但是,我想跟踪下载次数并更新该歌曲的数据库行。除非我的属性有 href="#",否则添加 onclick 不起作用。有什么解决方法或建议吗?

【问题讨论】:

  • 我忘了说我的这个版本的网站只适用于所有安卓用户。在许多下载文件的方法中,我发现这是唯一一种在所有安卓浏览器上强制下载的完美工作方法。我有 1 种其他方法可以使用 javascript 下载并创建 blob 链接,但问题是文件在后台下载,然后在完成后出现。对于大文件,这将花费一些时间,并且会使用户感到下载按钮不起作用。
  • 如果你想使用 JS,你将需要 ajax。您的问题缺少代码/细节。如果要跟踪,则需要以UPDATE table SET col_x = col_x +1 WHERE col_y = ? 为例。还需要使用带有标题的强制下载方法。

标签: javascript php database html file


【解决方案1】:

您似乎可以控制后端。我只会计算该特定文件的 http 服务器的 GET 条目。我觉得比较好,因为它是异步的,并且会妨碍准确计数(如果你使用ajax,并且ajax请求失败,你会错过一个计数)

在 redhat/apache2 环境中就像 grep "locationtomp3file.mp3" /var/log/http/access_log | wc -l 一样简单。每次在您的服务器上运行它并用结果更新您的数据库,这就是我的做法。您可能没有意识到这一点,但在“离线”模式下在后台批量运行许多任务实际上是非常好的和非常健康的。如果您愿意,可以每 5 分钟运行一次,只要它们不是资源密集型的。

【讨论】:

    【解决方案2】:
    <a id="download" href="#" download>Start Download</a>
    
    <!-- With Jquery -->
    <script>
    $("#download").click(function() {
        window.location = 'http://locationtomp3file.mp3';
    });
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 2017-08-05
      • 2014-12-30
      • 1970-01-01
      • 2012-08-28
      • 2021-02-19
      • 2020-09-10
      相关资源
      最近更新 更多