1 回答

TA貢獻1793條經驗 獲得超6個贊
在向用戶提供她請求的文件之前,您需要攔截用戶的“意圖”。
有多種方法可以做到這一點。由于您已經有一個鏈接界面(QR 代碼),因此您可以使用它首先將用戶發送到 url 處的第一個“計數器頁面” www.example.com/serve.php?f=data/data1.pdf(這將是 QR 代碼中編碼的 url)
該文件看起來像這樣:
<?php
$requested_file = $_GET['f'];
$conn = //init your connexion
$conn->execute("UPDATE counters SET counter = counter + 1 WHERE filename = ?", requested_file);
header("Location: "+$requested_file);
exit;
如果您無法更改鏈接
在這種情況下,這會有點棘手,因為您仍然想在用戶到達文件之前攔截用戶,但她已經有了直接鏈接。
我建議使用一個.htaccess文件將目錄中的所有請求重定向到我們的serve.php. 請注意,默認情況下,此 htaccess 文件會將文件data夾中的所有流量重定向到我們的 php 文件,因此您肯定需要做一些額外的工作才能將其集成到您的域中
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/data [NC]
RewriteRule ^(.*)$ /serve.php?f=$1 [NC,L,QSA]
并將serve.php更改為:
<?php
$requested_file = $_GET['f'];
$conn = //init your connexion
$conn->execute("UPDATE counters SET counter = counter + 1 WHERE filename = ?", requested_file);
$content = file_get_contents($server_path_to_requested_file);
header("Content-type: application/pdf"); //change that if you handle multiple files
echo $content;
exit;
這里的缺點又是你需要 PHP 來讀取并吐出文件的內容(這比直接提供文件要慢)
- 1 回答
- 0 關注
- 152 瀏覽
添加回答
舉報