Метод extension
Метод extension применяется к объекту UploadedFile
и возвращает расширение файла, определённое на основе его
MIME-типа. В отличие от метода getClientOriginalExtension,
который возвращает расширение из оригинального имени файла,
данный метод использует MIME-тип для более точного определения
расширения. Метод не принимает никаких параметров.
Синтаксис
<?php
$extension = $uploadedFile->extension();
?>
Пример
Давайте получим расширение загруженного файла в контроллере:
<?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->extension();
echo $extension;
}
}
}
?>
Результат выполнения кода при загрузке файла с именем image.jpg:
"jpeg"
Пример
Давайте сравним результаты методов extension и getClientOriginalExtension:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FileController extends Controller
{
public function compare(Request $request)
{
$file = $request->file('image');
if ($file->isValid()) {
$extFromMime = $file->extension();
$extFromName = $file->getClientOriginalExtension();
echo "Extension from MIME: " . $extFromMime;
echo "Extension from original name: " . $extFromName;
}
}
}
?>
Результат выполнения кода при загрузке файла с именем photo.jpeg, но с MIME-типом image/png:
"Extension from MIME: png"
"Extension from original name: jpeg"
Пример
Давайте используем расширение для проверки типа загруженного файла перед сохранением:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class FileController extends Controller
{
public function store(Request $request)
{
$file = $request->file('document');
if ($file->isValid()) {
$extension = $file->extension();
if ($extension === 'pdf') {
$file->store('documents');
echo "File saved successfully";
} else {
echo "Only PDF files are allowed";
}
}
}
}
?>
Результат выполнения кода при загрузке PDF-файла:
"File saved successfully"
Смотрите также
-
метод
getClientOriginalExtension,
который возвращает расширение из оригинального имени файла -
метод
getMimeType,
который возвращает MIME-тип загруженного файла -
метод
getClientOriginalName,
который возвращает оригинальное имя файла -
метод
store,
который сохраняет загруженный файл в хранилище