Ответ
Конечно. Вот пример из реального проекта — сервисный класс на Laravel, отвечающий за обработку загрузки файлов с валидацией и сохранением в облачное хранилище:
<?php
namespace AppServices;
use IlluminateHttpUploadedFile;
use IlluminateSupportFacadesStorage;
use IlluminateSupportStr;
class FileUploadService
{
public function uploadUserDocument(UploadedFile $file, int $userId): string
{
// Валидация MIME-типа и размера
$validated = $file->validate([
'mimes:pdf,jpeg,png',
'max:5120', // 5 MB
]);
// Генерация уникального имени для безопасности
$fileName = Str::uuid()->toString() . '.' . $file->extension();
$path = "user_docs/{$userId}/{$fileName}";
// Загрузка в S3-совместимое хранилище
Storage::disk('s3')->put($path, file_get_contents($file->path()));
// Возвращаем публичный URL (с подписанным URL, если нужно)
return Storage::disk('s3')->url($path);
}
}
Этот код демонстрирует работу с фасадами Laravel, безопасную обработку файлов и интеграцию с облачными сервисами.