函数重命名()删除带有文件的目录



>我尝试将文件从目录'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,但效果是一样的。

由于您使用的是 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 目录的文件权限正确。

你可以做一个copy((和unklink((来代替:

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

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

相关内容

  • 没有找到相关文章

最新更新