[英]Laravel rename file
我正在嘗試在laravel 5.6中重命名文件
當我物理上重命名文件時,這很好用,但是當我只是改變大小寫時-它會引發錯誤:
League\Flysystem\FileExistsException: File already exists at path
例
old path: Music/The Corrs/The Corrs - What Can I Do.mp3
new path (DO): Music/The Corrs/The Corrs - What Can I DO.mp3
碼
Storage::disk($disk)->move($old, new);
如何解決此問題,以便在情況發生變化時可以重命名/移動文件?
在Windows上,文件名大小寫無關緊要。 因此,名稱為uppercase.txt
和UPPERCASE.txt
文件是相同的,但是在一個文件夾中不可能有兩個名稱相同的文件。
重命名時,文件實際上已“移動”到另一個名稱。 但是,該文件已經存在,因此會出現錯誤。
我建議先將文件存儲在temp文件夾中,以便在重命名之前重命名文件或對文件使用臨時名稱。
袖套解決方案
$oldPath = "Music/The Corrs/The Corrs - What Can I Do.mp3";
$newPath = "Music/The Corrs/The Corrs - What Can I DO.mp3";
$paddedPath = str_replace(" ", "@@padding@@", $oldPath);
//move from old path to padded path
Storage::move(
$oldPath,
$paddedPath,
);
//move from padded path to new
Storage::move(
$paddedPath,
$newPath
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.