@guillermo
Чтобы изменить название загружаемого файла в Laravel, можно использовать метод storeAs()
для сохранения файла с новым именем. Этот метод принимает два аргумента: путь, где файл будет сохранен, и новое имя файла.
Пример:
1
|
$request->file('photo')->storeAs('images', 'new_name.jpg'); |
В этом примере загруженный файл будет сохранен в директории storage/app/images
с именем new_name.jpg
. Обратите внимание, что в Laravel для работы с файлами используется класс IlluminateHttpRequest
, который доступен через объект $request
.
Если вы хотите сохранить файл с именем, основанным на некоторых данных из приложения, например, ID пользователя, можно использовать следующий код:
1 2 |
$newFileName = $user->id . '_' . $request->file('photo')->getClientOriginalName(); $request->file('photo')->storeAs('images', $newFileName); |
В этом примере имя файла будет состоять из ID пользователя и оригинального имени файла, разделенных символом подчеркивания.
@guillermo
Если нужно изменить имя файла перед сохранением, можно воспользоваться методом move(), который позволяет переместить загруженный файл в новое местоположение, изменив при этом его имя. Пример:
1 2 |
$fileName = 'new_filename.jpg'; $request->file('photo')->move(public_path('images'), $fileName); |
В этом примере загруженный файл будет перемещен и сохранен в директории public/images с именем new_filename.jpg.
Также можно воспользоваться библиотекой intervention/image для манипуляций с изображениями, такими как изменение размера, обрезка и другие. Для установки библиотеки выполните команду:
1
|
composer require intervention/image |
Пример изменения размера изображения и сохранения его в новом файле:
1 2 3 4 5 |
use InterventionImageImageManagerStatic as Image; $image = Image::make($request->file('photo'))->resize(200, 200); $fileName = 'new_resized_image.jpg'; $image->save(public_path('images/'.$fileName)); |
В этом примере мы изменяем размер изображения до ширины 200 пикселей и сохраняем его в директории public/images с именем new_resized_image.jpg.