簡體   English   中英

如何創建(可配置)數量的臨時下載鏈接

[英]How to create a (configurable) number of temporary download links

我創建的下載鏈接只能運行10次。因此我有2個選項。

  • 下載文件並將其計數更新到數據庫,並在計數為10時刪除文件。
  • 或下載文件並重命名為filename-1,filename-2 ....... filename-10 ..並在達到filename-10時將其最終刪除。

我猜第二種選擇使用較少的資源來不調用數據庫。現在找到文件名的簡單方法是什么例如:

我所有的文件名都是唯一的,例如sadkjsah78876djhgsadj.jpg 。因此,當我更新計數時,它將像

sadkjsah78876djhgsadj-1.jpg
(or)
sadkjsah78876djhgsadj-8.jpg

因此,如何在目錄中基於sadkjsah78876djhgsadj查找文件名。我正在考慮循環。但是當我將下載限制設置為100時,我認為這不是最好的方法。

最好的選擇是將.htaccessmod_rewite一起使用,以mod_rewite特定目錄的調用重寫為PHP文件。 例如,對/downloads/FILEHASH.jpg任何調用都將改寫為/download.php?file=FILEHASH

然后download.php將檢查FILEHASH是否與FILEHASH中的一行匹配,並且dl計數在x ,如果是,它將增加dl計數,將響應代碼設置為200 ,內容類型為image/jpeg並且釋放圖像數據(存儲在文件系統中或從數據庫的BLOB中釋放)。

如果未找到或者dl計數超過x ,則會將響應代碼設置為404 (或者,如果您願意,則更合適),或者不返回任何內容,或者返回有用的消息。 根據文件的數量,此時您可能還應該從數據庫中刪除該行,並從文件系統中取消該文件的鏈接。

如果使用MVC框架,這種事情真的很簡單。

如果您要提供的不僅僅是圖像,請確保在添加了上傳的MIME類型后,將其保存在數據庫中,並在下載時用作內容類型。

暫無
暫無

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

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