Laravelでファイルのカスタム名を設定する方法


  1. アップロードされたファイルのオリジナル名を保持しつつ、保存時にカスタム名を設定する方法:
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ディスク)の指定した場所に保存します。

  1. ファイルの保存時にランダムな名前を生成する方法:
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ファサードを使用してファイルを保存していますが、ファイルシステムの選択に応じて異なるドライバーを使用することもできます(例:publics3localなど)。

以上がLaravelでファイルのカスタム名を設定する方法のいくつかの例です。これらの方法を使用することで、ファイルの保存時に自由にカスタム名を指定できます。