我有一个下载<a href="http://website/filename.pdf">Download</a>
的链接,我希望每当有人点击下载时我都可以插入数据库total_downloads + 1。
对于插入数据库,我通常使用
<form method="POST">
<input type="submit" name="download" value="Download">
</form>
然后
if (isset($_POST['download'])) {...}
但是我不知道如何在单击表单中的下载按钮后触发下载。
答案 0 :(得分:1)
快捷方式是:
header('Location: http://website/filename.pdf');
要对参数进行更多控制,您可以使用此代码:
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="somename.pdf');
header('Content-Length: '.filesize($filepath) );
readfile($filepath);
答案 1 :(得分:1)
关于kgm的答案(这是绝对正确的),你应该确保要下载的文件相当小,因为readfile()将所有文件内容读入内存,这可能导致内存耗尽。要避免这种情况,请查看此站点上用户贡献中的“readfile_chunked”:http://php.net/manual/de/function.readfile.php
欢呼:)答案 2 :(得分:0)
要使提交按钮像html链接一样工作,请添加onclick属性以提交按钮
<input type="submit" onClick="parent.location='http://website/filename.pdf'"
name="download" value="Download">
答案 3 :(得分:0)
<a href="http://website/filename.pdf" onclick='$.post("name_of_page.php", {download: "Download"});'>Download</a>
我不确定报价。