2013-04-25 33 views
2

我有一個ACL控制的應用程序,它使用Media plugin將文件上傳到/app/webroot/media。上傳文件時,將dirname,basename和文件名寫入數據庫。CakePHP在身份驗證後訪問受限文件

我正在尋找一種方法來限制對/app/webroot/media的訪問,允許用戶在登錄後只能查看與其用戶ID相關的文件。目前,用戶可以訪問其他用戶的文件,這些文件根本不理想。就CakePHP而言,有沒有最佳做法?

回答

2

如果用戶知道網址,webroot下的任何文件都將公開訪問。將文件存儲在webroot之外的文件夾中,然後使用CakeResponse::file()通過控制器操作呈現它們。這樣您可以根據需要控制器訪問該操作。

+0

感謝ADmad,那是我現在正在做的。通過CakeResponse發送響應,可以在視圖中自動呈現圖像嗎? – dcd0181 2013-04-25 06:36:26

+0

我不明白你在問什麼。如果使用CakeResponse :: file()來渲染文件,則不需要任何視圖。 – ADmad 2013-04-25 07:20:31

+0

我有CakeResponse :: file()和CakeResponse :: download()動作的視圖和下載按鈕。我想要的是如果文件是圖像,則在按鈕旁邊向用戶顯示縮略圖。 – dcd0181 2013-04-25 07:37:04