基本上,我使用標準的Yii2設置。我有一個登錄,允許用戶查看文件的鏈接。這些文件位於下載文件夾中......但只有當用戶「不是客人」時才能看到鏈接的頁面。現在,如果任何人只是將鏈接複製到其他人,那麼其他人將能夠在不登錄的情況下下載文件。所討論的文件沒有被「支付」,但是我需要在他們之前有人登錄由於服務條款和其他法律允許下載。我可以動態創建通過PHP的下載鏈接?至少檢查「isGuest」,如果isGuest = True,則重定向到登錄頁面。我怎麼做,而不是隻有一個直接的下載鏈接?如何防止未登錄Yii2項目的人下載文件?
-1
A
回答
0
您可以通過AccessControl Class爲特定角色或用戶提供特定操作的訪問權限。
你可以做這樣的事情:
class DownloadController extends Controller
{
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => false,
'actions' => ['download'],
'roles' => ['?'],
],
],
],
];
}
// ...
}
'?'
角色是guest用戶。
0
+0
我知道如何檢查IsGuest,但是,謝謝你的回答。正如其他人所說的那樣,我需要通過一個控制器來檢查isGuest文件。不是直接下載。謝謝。 –
0
禁止訪問任何人都可以通過該文件直接下載。您可以使用htaccess或將下載文件夾放入受保護的文件夾中。現在,您需要在控制器中進行下載操作,以檢查用戶是來賓還是登錄。如果確定,只需將文件從文件系統傳遞到用戶瀏覽器即可。 phps readfile可以幫助你在這裏。
+0
超級超級感謝!你的第三個答案非常有幫助。謝謝! –
相關問題
- 1. 防止未登錄的用戶下載ASP.NET
- 2. 防止用戶下載特定目錄中的文件
- 3. 如何防止Yii2
- 4. 防止PHP文件下載
- 5. 防止文件下載
- 6. PHP文件下載防止
- 7. 防止文件下載,RoR
- 8. 我們如何防止第二人登錄時已經登錄第一個人
- 9. 如何下載Java項目的資源目錄中的文件
- 10. 如何防止重定向到js文件的登錄?
- 11. 防止下載重複的Javascript文件
- 12. 防止IFRAME下載的SWF文件
- 13. 防止用戶在未登錄的情況下不刪除
- 14. 如何防止項目文本換
- 15. 谷歌登錄 - 防止自動負載
- 16. 如何禁止訪問機器人的登錄文件
- 17. scrapy防止下載文件,如果已經下載
- 18. 防止多登錄導致錯誤,並防止再次登錄
- 19. 防止不存在的目錄加載通配符文件
- 20. 防止下載?
- 21. 如何防止加載未簽名的jar文件?
- 22. 防止Ajax重新下載js文件
- 23. VB.net文件下載防止回發
- 24. 如何防止自動登錄google oauth?
- 25. 如何防止交互式ssh登錄?
- 26. 如何修改Spring控制器以防止下載未更改的文件
- 27. 如何防止文件下載到未經身份驗證的用戶
- 28. 如何防止捆綁使用未包含在項目中的文件?
- 29. 如何防止在未登錄時推送到heroku
- 30. 如何防止未經登錄使用Ajax?
非常感謝!這是我需要的。加上如何直接禁止文件的第一個答案。 –
所以基本上做一個「每個人登錄組」並取代'?'這很完美。只需定義使用「sendFile」方法的操作?非常好。基本上,example.org/index.php?download="stuff.mp3「而不是example.org/downloads/stuff.mp3?棒極了。非常感謝。 –