Полный цикл в digital

Загрузка файлов

В Laravel очень просто сохранять загружаемые файлы методом store() на экземпляре загружаемого файла:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class UserAvatarController extends Controller {
    public function update(Request $request) {
        $path = $request->file('avatar')->store('avatars');
        return $path;
    }
}

Мы указываем только директорию avatars, а имя файла будет сформировано автоматически. Метод вернёт путь к файлу, поэтому можно сохранить в БД весь путь, включая сгенерированное имя. Файл будет сохранен на диск по умолчанию, но можно указать диск вторым аргументом метода store().

$path = $request->file('avatar')->store('avatars', 'public');

Также можно использовать метод putFile() фасада Storage для выполнения аналогичного действия:

// будет использован диск по умолчанию
$path = Storage::putFile('avatars', $request->file('avatar'));
// явное указание диска для сохранения
$path = Storage::disk('public')->putFile('avatars', $request->file('avatar'));

Чтобы задать свое имя файла и (опционально) диск для сохранения, можно использовать метод storeAs():

// будет использован диск по умолчанию
$path = $request->file('avatar')->storeAs(
    'avatars', // директория, куда сохранять
    $request->user()->id // имя файла
);
// явное указание диска для сохранения
$path = $request->file('avatar')->storeAs(
    'avatars', // директория, куда сохранять
    $request->user()->id, // имя файла
    'public' // диск, куда сохранять
);

Также можно использовать метод putFileAs() фасада Storage для выполнения аналогичного действия:

// будет использован диск по умолчанию
$path = Storage::putFileAs(
    'avatars', // директория, куда сохранять
    $request->file('avatar'),
    $request->user()->id // имя файла
);
// явное указание диска для сохранения
$path = Storage::disk('public')->putFileAs(
    'avatars', // директория, куда сохранять
    $request->file('avatar'),
    $request->user()->id // имя файла
);

Чтобы получить оригинальное имя загруженного файла:

$name = $request->file('avatar')->getClientOriginalName();

Чтобы получить оригинальное расширение загруженного файла:

$extension = $request->file('avatar')->extension();
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг