簡體   English   中英

單擊<a>href鏈接</a>后如何插入數據庫<a>?</a>

[英]How to insert into database after you click on <a> href link?

我有一個下載<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'])) {...}

但是我在單擊表單中的下載按鈕后不知道如何觸發下載。

快速簡便的方法是:

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);

關於kgm的答案(絕對正確),你應該確保要下載的文件相當小,因為readfile()將所有文件內容讀入內存,這可能導致內存耗盡。 要避免這種情況,請查看本網站上用戶貢獻中的“readfile_chunked”: http//php.net/manual/de/function.readfile.php

歡呼:)

要使提交按鈕像html鏈接一樣工作,請添加onclick屬性以提交按鈕

<input type="submit" onClick="parent.location='http://website/filename.pdf'" 
 name="download" value="Download">
<a href="http://website/filename.pdf" onclick='$.post("name_of_page.php", {download: "Download"});'>Download</a>

我不確定報價。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM