函数rename()删除带有文件的目录

时间:2018-01-09 20:00:56

标签: php laravel move

我尝试将文件从目录'storage/cvs/'移动到'storage/r_cvs/'。我有代码:

$getOldCV = $worker->cv;
$createCatalogNameCV = $request->name."_".$request->surname;
$createCatalogCV = iconv('UTF-8', 'ISO-8859-1//TRANSLIT//IGNORE', $createCatalogNameCV);
// Storage::move('storage/cvs/'.$getOldCV, 'storage/r_cvs/' . $createCatalogCV . '/' . $getOldCV);
rename('storage/cvs/'.$getOldCV, 'storage/r_cvs/' . $createCatalogCV . '/' . $getOldCV);

当我移动文件$getOldCV时,文件被移动,但脚本会删除包含文件的所有目录'storage/cvs/'。我尝试使用rename()和Laravel函数Storage::move,但效果是一样的。

3 个答案:

答案 0 :(得分:2)

由于您使用的是Laravel,因此可以使用Storage::move()方法:

Storage::move(storage_path('csv/' . $getOldCV), storage_path('r_cvs/' . $createCatalogCV . '/' . $getOldCV));

File::move()。它与Storage::move()

不同
File::move(storage_path('csv/' . $getOldCV), storage_path('r_cvs/' . $createCatalogCV . '/' . $getOldCV));

另外,请确保storage目录的文件权限正确。

答案 1 :(得分:1)

您可以改为使用copy()和unklink():

copy('storage/cvs/'.$getOldCV, 'storage/r_cvs/' . $createCatalogCV . '/' . $getOldCV);
unlink('storage/cvs/'.$getOldCV);

答案 2 :(得分:1)

我将rename()更改为move_uploaded_file(),现在脚本工作正确