- アップロードされたファイルのオリジナル名を保持しつつ、保存時にカスタム名を設定する方法:
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
public function uploadFile(Request $request)
{
$file = $request->file('file');
$customName = 'custom_name.'.$file->getClientOriginalExtension();
$path = Storage::disk('public')->putFileAs('uploads', $file, $customName);
// 保存後の処理
}
上記の例では、$customName
にカスタム名を設定しています。Storage::disk('public')->putFileAs
メソッドを使用して、ファイルを指定したディスク(ここではpublic
ディスク)の指定した場所に保存します。
- ファイルの保存時にランダムな名前を生成する方法:
use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
public function uploadFile(Request $request)
{
$file = $request->file('file');
$extension = $file->getClientOriginalExtension();
$randomName = Str::random(40).'.'.$extension;
$path = Storage::disk('public')->putFileAs('uploads', $file, $randomName);
// 保存後の処理
}
上記の例では、Str::random
メソッドを使用して40文字のランダムな名前を生成し、その名前にファイルの拡張子を結合しています。
これらの例では、Storage
ファサードを使用してファイルを保存していますが、ファイルシステムの選択に応じて異なるドライバーを使用することもできます(例:public
、s3
、local
など)。
以上がLaravelでファイルのカスタム名を設定する方法のいくつかの例です。これらの方法を使用することで、ファイルの保存時に自由にカスタム名を指定できます。