我有一個laravel資源控制器中的更新控制器功能,它非常基本。正常更新數據庫中的標題,正文等(數據更新沒有問題)。文件重命名不再起作用
問題出在圖像上。我的每個項目的圖像目錄都遵循一個基於項目標題的命名約定。我構建了更新函數,以便在標題更改後重命名目錄和圖像。我一建立它就能正常工作,但它突然停止。該目錄重命名,但文件沒有。這裏是控制器的相關代碼片段:
$count = 0;
$slug = Input::get('title');
$prefix = Str::slug($slug);
$oldPrefix = $project->imagesprefix;
$path = public_path().'/img/projects/';
$directory = $path . $prefix;
rename($path.$oldPrefix, $directory);
//dumped directory here and it's definitely set
$files = preg_grep('~\.(jpg)$~', scandir($directory));
//dumped $files here and the array is definitely set
foreach($files as $file){
rename($directory.'/'.$file, $directory.'/'.$prefix.'-'.$count.'.jpg');
++$count;
}
rename($directory.'/thumbnails/'.$oldprefix.'-thumb.jpg', $directory.'/thumbnails/'.prefix.'-thumb.jpg');
所有這些在今天下午測試時工作正常。現在它更新數據庫,重命名目錄文件夾但無法重命名文件。我已經在循環之前轉儲了$ files和$ directory,並且它們都被設置了。
你檢查過文件權限嗎? 'ls -l' – Alupotha
就是這樣。我可以坐在那面一年,甚至沒有想到它。每次重命名目錄後,你是否必須重置權限?我曾創建了一個0777,我認爲它將保持不變。 –