diff --git a/core/modules/file/file.module b/core/modules/file/file.module index fa17d9c8de8..802c91711c8 100644 --- a/core/modules/file/file.module +++ b/core/modules/file/file.module @@ -1080,7 +1080,7 @@ function template_preprocess_file_link(&$variables) { // Set file classes to the options array. $variables['attributes'] = new Attribute($variables['attributes']); $variables['attributes']->addClass($classes); - $variables['file_size'] = format_size($file->getSize() ?? 0); + $variables['file_size'] = $file->getSize() !== NULL ? format_size($file->getSize()) : ''; $variables['link'] = Link::fromTextAndUrl($link_text, $url->mergeOptions($options))->toRenderable(); } diff --git a/core/modules/file/src/Plugin/Field/FieldFormatter/TableFormatter.php b/core/modules/file/src/Plugin/Field/FieldFormatter/TableFormatter.php index 3c0aa914fab..e94156a6d36 100644 --- a/core/modules/file/src/Plugin/Field/FieldFormatter/TableFormatter.php +++ b/core/modules/file/src/Plugin/Field/FieldFormatter/TableFormatter.php @@ -39,7 +39,7 @@ class TableFormatter extends DescriptionAwareFileFormatterBase { ], ], ], - ['data' => format_size($file->getSize())], + ['data' => $file->getSize() !== NULL ? format_size($file->getSize()) : $this->t('Unknown')], ]; } diff --git a/core/modules/file/tests/src/Functional/FileFieldDisplayTest.php b/core/modules/file/tests/src/Functional/FileFieldDisplayTest.php index 7b12a90dc8e..43dfa4fc238 100644 --- a/core/modules/file/tests/src/Functional/FileFieldDisplayTest.php +++ b/core/modules/file/tests/src/Functional/FileFieldDisplayTest.php @@ -232,6 +232,16 @@ class FileFieldDisplayTest extends FileFieldTestBase { $this->drupalGet('node/' . $nid); $this->assertSession()->elementTextContains('xpath', '//a[@href="' . $node->{$field_name}->entity->createFileUrl() . '"]', $description); + + // Test that null file size is rendered as "Unknown". + $nonexistent_file = File::create([ + 'uri' => 'temporary://' . $this->randomMachineName() . '.txt', + ]); + $nonexistent_file->save(); + $node->set($field_name, $nonexistent_file->id()); + $node->save(); + $this->drupalGet('node/' . $nid); + $this->assertSession()->elementTextEquals('xpath', '//a[@href="' . $node->{$field_name}->entity->createFileUrl() . '"]/../../../td[2]', 'Unknown'); } }