2012-07-02 27 views
0

我想將我的上傳保存在每個app_id的特定文件夾中。例如,當app_id爲45的申請人上傳文件時,它必須保存在名爲45的文件夾中,而他/她的所有上載(如出生證明,大學證書,個人資料圖片和高中證書)將位於該文件夾中,與其他app_id例如89必須有他/她自己的文件夾,但所有上傳的文件將位於一個父文件夾,例如webroot/files/uploads/....在CakePHP 2.1中上傳和保存文件

我設法從Miles Johnson實施Uploader v3.6 ,所以在該插件或任何其他解決方案

任何教程或鏈接任何幫助解決這一挑戰

謝謝

回答

2

您的想法中的一個巨大的安全失敗是將高中證書存儲在公共(!)accessible/webroot/files/uploads文件夾中。如果每個人都可以從服務器上下載這些僞造文檔,那麼在許多擁有隱私法的國家中,您肯定會遇到相當不愉快的情況。

將文件存儲到文件夾1,2,3 ...中使用增量ID在性能方面也是一個糟糕的主意:請閱讀this article的「文件系統性能」部分。

存儲連接到用戶在同一文件夾中的所有文件可能是一個好主意,如果你想刪除所有的人都在一個動作,當你刪除的用戶,但你不應該忘記正確消毒的文件名。但是,如果將數千個文件存儲在同一個(子)文件夾中,則可能會再次出現問題。

對於CakePHP 2.x的文件存儲解決方案,我建議您閱讀我的FileStorage plugin的readme.md,它涵蓋了幾乎所有的常見問題,併爲您提供了一個可靠的文件存儲基礎。

+0

好的謝謝你的貢獻,但作爲CakePHP的新學習曲線,如果你能告訴我我該怎麼做,根據他們的user_id_directory保存文件,那麼我會很好的理解機制。 –

+0

對不起,我沒有爲你寫代碼。這很簡單:將記錄保存到表中,然後您有該ID,使用該ID創建目錄並將文件保存到它。 – burzum