Метод isValid
Метод isValid применяется к экземпляру класса UploadedFile
и возвращает булево значение, указывающее на успешность загрузки файла.
Метод не принимает параметров и позволяет убедиться, что файл был
корректно передан через HTTP-запрос без ошибок.
Синтаксис
<?php
$uploadedFile->isValid();
?>
Пример
Давайте проверим валидность загруженного файла в контроллере:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateHttpUploadedFile;
class FileController extends Controller
{
public function upload(Request $request)
{
$file = $request->file('document');
if ($file instanceof UploadedFile && $file->isValid()) {
echo "File uploaded successfully";
} else {
echo "File upload failed";
}
}
}
?>
Результат выполнения кода при успешной загрузке:
"File uploaded successfully"
Пример
Давайте обработаем ошибки при загрузке файла:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
class FileController extends Controller
{
public function upload(Request $request)
{
$file = $request->file('image');
if (!$file || !$file->isValid()) {
echo "Invalid file upload";
return;
}
$res = $file->store('uploads', 'public');
echo "File stored at: " . $res;
}
}
?>
Результат выполнения кода:
"File stored at: uploads/abcde12345.jpg"
Пример
Давайте создадим валидатор для проверки файла с использованием метода isValid:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateHttpUploadedFile;
class FileController extends Controller
{
public function validateFile(Request $request)
{
$file = $request->file('attachment');
if (!$this->isFileValid($file)) {
echo "File validation failed";
return;
}
$res = $file->store('attachments', 'private');
echo "File saved: " . $res;
}
private function isFileValid(UploadedFile $file)
{
return $file->isValid() &&
$file->getSize() < 2048 &&
in_array($file->getClientOriginalExtension(), ['jpg', 'png']);
}
}
?>
Результат выполнения кода при успешной валидации:
"File saved: attachments/abcde67890.jpg"
Смотрите также
-
метод
store,
который сохраняет загруженный файл в указанную директорию -
метод
storeAs,
который сохраняет файл с указанным именем -
метод
getMimeType,
который возвращает MIME-тип загруженного файла -
метод
getSize,
который возвращает размер загруженного файла в байтах