РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
801 of 1392 menu

Метод storeAs

Метод storeAs применяется к объекту загруженного файла класса UploadedFile и сохраняет файл в указанную директорию с заданным именем. Первым параметром передаётся путь к директории сохранения относительно корня диска, вторым - имя файла, третьим (необязательным) - название диска, на котором нужно сохранить файл. Если диск не указан, используется диск по умолчанию.

Синтаксис

<?php $uploadedFile->storeAs($directory, $filename, $disk); ?>

Пример

Давайте сохраним загруженный файл в директорию 'avatars' с именем 'user_avatar.jpg' на диске по умолчанию:

<?php namespace App\Http\Controllers; use App\Models\User; use Illuminate\Http\Request; class UserController extends Controller { public function updateAvatar(Request $request, $id) { $user = User::find($id); if ($request->hasFile('avatar')) { $path = $request->file('avatar')->storeAs('avatars', 'user_avatar.jpg'); $user->avatar_path = $path; $user->save(); echo "Avatar uploaded successfully"; } else { echo "No avatar file found"; } } } ?>

Результат выполнения кода:

"Avatar uploaded successfully"

Пример

Давайте сохраним загруженный файл в директорию 'documents' с уникальным именем, сгенерированным на основе оригинального имени файла:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class DocumentController extends Controller { public function uploadDocument(Request $request) { if ($request->hasFile('document')) { $file = $request->file('document'); $originalName = $file->getClientOriginalName(); $timestamp = time(); $newFilename = $timestamp . '_' . $originalName; $path = $file->storeAs('documents', $newFilename); echo "Document saved at: " . $path; } else { echo "No document file found"; } } } ?>

Результат выполнения кода:

"Document saved at: documents/1648562345_report.pdf"

Пример

Давайте сохраним загруженный файл на диске 'public' в директорию 'photos' с именем 'profile.jpg':

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ProfileController extends Controller { public function uploadPhoto(Request $request) { if ($request->hasFile('photo')) { $path = $request->file('photo')->storeAs( 'photos', 'profile.jpg', 'public' ); echo "Photo saved on public disk: " . $path; } else { echo "No photo file found"; } } } ?>

Результат выполнения кода:

"Photo saved on public disk: photos/profile.jpg"

Пример

Давайте сохраним загруженный файл с проверкой его расширения и обработкой ошибок:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class FileController extends Controller { public function uploadFile(Request $request) { try { $file = $request->file('file'); if (!$file->isValid()) { echo "Invalid file upload"; return; } $extension = $file->getClientOriginalExtension(); $allowedExtensions = ['jpg', 'png', 'pdf', 'docx']; if (!in_array($extension, $allowedExtensions)) { echo "File extension not allowed"; return; } $path = $file->storeAs( 'uploads', 'file_' . time() . '.' . $extension ); echo "File uploaded successfully: " . $path; } catch (\Exception $e) { echo "Upload failed: " . $e->getMessage(); } } } ?>

Результат выполнения кода:

"File uploaded successfully: uploads/file_1648562345.pdf"

Смотрите также

  • метод store,
    который сохраняет файл с автоматическим именем
  • метод storePublicly,
    который сохраняет файл с публичным доступом
  • метод putFileAs,
    который сохраняет файл через фасад Storage
  • метод getClientOriginalName,
    который возвращает оригинальное имя файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить