By kim.pepper on
Change record status:
Published (View all published change records)
Project:
Introduced in branch:
10.3.x
Introduced in version:
10.3.0
Description:
UploadedFileInterface::isValid(), ::getError() and ::getErrorMessage() are deprecated.
\Drupal\file\Upload\FileUploadHandler::handleFileUpload() now calls UploadedFileInterface::validate(), and FileValidation exceptions are no longer thrown.
Before:
try {
$result = $file_upload_handler->handleFileUpload($form_uploaded_file, $validators, $destination, $replace, FALSE);
}
catch (IniSizeFileException | FormSizeFileException $e) {
\Drupal::messenger()->addError(t('The file %file could not be saved because it exceeds %maxsize, the maximum allowed size for uploads.', [
'%file' => $uploaded_file->getFilename(),
'%maxsize' => ByteSizeMarkup::create(Environment::getUploadMaxSize()),
]));
}
catch (PartialFileException | NoFileException $e) {
\Drupal::messenger()->addError(t('The file %file could not be saved because the upload did not complete.', [
'%file' => $uploaded_file->getFilename(),
]));
}
catch (SymfonyFileException $e) {
\Drupal::messenger()->addError(t('The file %file could not be saved. An unknown error has occurred.', ['%file' => $uploaded_file->getFilename()]));
}
catch (FileValidationException $e) {
$message = [
'error' => [
'#markup' => t('The specified file %name could not be uploaded.', ['%name' => $e->getFilename()]),
],
'item_list' => [
'#theme' => 'item_list',
'#items' => $e->getErrors(),
],
];
\Drupal::messenger()->addError($renderer->renderPlain($message));
}
After:
$result = $file_upload_handler->handleFileUpload($form_uploaded_file, $validators, $destination, $replace, FALSE);
if ($result->hasViolations()) {
$errors = [];
foreach ($result->getViolations() as $violation) {
$errors[] = $violation->getMessage();
}
$message = [
'error' => [
'#markup' => t('The specified file %name could not be uploaded.', ['%name' => $uploaded_file->getClientOriginalName()]),
],
'item_list' => [
'#theme' => 'item_list',
'#items' => $errors,
],
];
\Drupal::messenger()->addError($renderer->renderPlain($message));
}
Impacts:
Module developers