簡體   English   中英

Laravel重命名文件

[英]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.txtUPPERCASE.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM