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

Метод getClientOriginalExtension

Метод getClientOriginalExtension принадлежит классу Illuminate\Http\UploadedFile и используется для получения оригинального расширения загруженного файла. Расширение определяется на основе исходного имени файла, переданного в запросе от клиента, а не на основе MIME-типа или фактического содержимого файла. Это важно учитывать при проверке безопасности, так как клиент может подменить расширение.

Метод не принимает никаких параметров и возвращает строку, содержащую расширение файла, например, 'jpg', 'png' или 'pdf'. Если файл был загружен без расширения, метод вернёт пустую строку.

Синтаксис

<?php $extension = $uploadedFile->getClientOriginalExtension(); ?>

Пример

Получим расширение загруженного файла в контроллере:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class FileController extends Controller { public function upload(Request $request) { $file = $request->file('document'); if ($file->isValid()) { $extension = $file->getClientOriginalExtension(); echo "Extension: " . $extension; } } } ?>

Результат выполнения кода при загрузке файла 'image.jpg':

"Extension: jpg"

Пример

Проверим, что расширение соответствует допустимому списку:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class FileController extends Controller { public function upload(Request $request) { $file = $request->file('image'); $allowedExtensions = ['jpg', 'jpeg', 'png', 'gif']; if ($file->isValid()) { $extension = $file->getClientOriginalExtension(); if (in_array($extension, $allowedExtensions)) { echo "Allowed extension: " . $extension; } else { echo "Extension not allowed: " . $extension; } } } } ?>

Результат выполнения кода при загрузке файла 'photo.png':

"Allowed extension: png"

Результат выполнения кода при загрузке файла 'script.exe':

"Extension not allowed: exe"

Пример

Используем расширение для формирования уникального имени файла:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Str; class FileController extends Controller { public function upload(Request $request) { $file = $request->file('document'); if ($file->isValid()) { $extension = $file->getClientOriginalExtension(); $uniqueName = Str::uuid() . '.' . $extension; $file->storeAs('uploads', $uniqueName); echo "File saved as: " . $uniqueName; } } } ?>

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

"File saved as: 550e8400-e29b-41d4-a716-446655440000.pdf"

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

  • метод getClientOriginalName,
    который возвращает оригинальное имя файла
  • метод extension,
    который возвращает расширение на основе MIME-типа
  • метод getMimeType,
    который возвращает MIME-тип файла
  • метод hashName,
    который генерирует уникальное имя для файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить