2014-06-19 72 views
2

我正在使用Silverstripe 3.0 X ..我創建了一個新的上傳字段,它工作正常,並將文件上傳到資源中的上傳文件夾。銀條紋上傳文件到根文件夾

我想設置上傳路徑到根目錄是的public_html內/ 我知道,我們可以通過使用

$uploadField->setFolderName('customfolder'); 
// This will create a new folder inside assets/Uploads/customfolder 

設定的路徑,但我需要做一些改變讓我能將文件直接上傳到根文件夾。 我該如何做到這一點?

+1

我不認爲你可以設置上傳路徑到網站根目錄。 – 3dgoo

回答

2

那麼,雖然你可以,可能設置爲'/',但對你的問題的簡單答案是爲什麼你需要這個?這是永遠不需要的,因爲許可問題無法完成。

你不能真正允許根文件夾的寫權限,對吧?您的根文件夾包含重要文件,並且應該只能以網頁形式顯示(不可寫入)。

您需要上傳文件才能進入資產或任何其他您喜歡提供更高權限的客戶文件夾。

如果您確實需要將文件添加到根文件夾,它應該直接通過FTP或直接複製粘貼。

您可以將文件上傳到資產或其他目錄,但仍然將.htaccess設置爲公開顯示爲/myimage.jpg或其他內容。但這是另一個問題。

+0

你知道我將如何去改變.htaccess所以路徑不會包含/ assets /? – pinkp

0

當您上傳到資產時,您的apache用戶將獲取您上傳到的資產路徑的所有權。這在Silverstripe中很方便,因爲您可以使用該界面上傳/下載文件,而且通常不會自己編輯圖像的代碼,這意味着除了Silverstripe本身之外,沒有人需要編寫或執行特權。

但是,您經常想要編輯根目錄和下面的php類,css或配置文件。如果你經常不得不chmod的東西或以apache用戶身份登錄,這可能會變得乏味。

如果您需要上傳到根目錄,我建議您上傳到資產中的文件夾,並可能保留實際文件夾名稱作爲配置變量存儲在類中。這樣,您只需檢查類config()並使用Director或Folder來獲取資產URL。

您還可以將文件作爲File對象保存在數據庫中。