2014-10-29 74 views
0

我想添加文件限制到我的文件上傳功能中,我想用htaccess文件來做,因爲這是一個安全的選項。htaccess中的文件權限

然而,即使經過數小時的谷歌搜索,我也不知道該怎麼做。 我發現以前的類似線程的代碼:

deny from all 
<Files ~ 「^w+.(gif|jpe?g|png)$」> 
order deny,allow 
allow from all 
</Files> 

我的理解是,它僅允許GIF,JPE/JPEG和PNG。讓我們說我想添加.txt和.rar也是,我可以這樣說嗎?

<Files ~ 「^w+.(gif|jpe?g|png|txt|rar)$」> 

我以爲你需要指定MIME類型,所以我真的失去了。 提前謝謝!

回答

0

The Files directive與請求的文件名部分(即最後的/之後的子字符串)與指定的正則表達式模式匹配,MIME類型根本不起作用。所以是的,你可以把你喜歡的任何圖案放在那裏。

建議的一句話:在^w+.(gif|jpe?g|png|txt|rar)$模式中,點應該用反斜線(否則它表示'任何字符')轉義。此外,可能會刪除起始^w+:插入符號是字符串開頭的錨點,w +表示「任何字母數字字符」,因此在正常設置下丟棄它不會導致太大的差異。此外,文檔建議我們使用基於正則表達式的文件名匹配的FilesMatch指令,而不是帶有〜修飾符的Files指令。

說了這麼多,我真的不明白你的第一句話:

我想文件限制添加到我的文件上傳功能

所有這些東西是有關下載。也就是說,這會修改服務器發送給請求的回覆。從Apache的角度來看,上傳是一個龐大的POST請求,包含一些編碼數據。你可以用POST請求做很多事情(限制它的最大尺寸,測試它的起源,等等;參見this tutorial瞭解一些例子),但是確定postdata中發送的文件的類型並不是真的可行只有htaccess;這樣做是應用程序層的責任。