diff --git a/core/modules/jsonapi/src/Controller/FileUpload.php b/core/modules/jsonapi/src/Controller/FileUpload.php index fb0aa977cd..3974daa0e2 100644 --- a/core/modules/jsonapi/src/Controller/FileUpload.php +++ b/core/modules/jsonapi/src/Controller/FileUpload.php @@ -278,8 +278,15 @@ protected function doHandleFileUpload(Request $request, ResourceType $resource_t // header. This doesn't change the URI, just the label of the entity. $file = $result->getFile(); if ($file->getFilename() !== $filename) { - $file->setFilename($filename); - $file->save(); + // We use explode here instead of pathinfo() because we want everything + // after the first ., e.g. for a file example.php.txt we want php.txt not + // just txt. + [, $original_extension] = @explode('.', $filename, 2); + [, $extension] = @explode('.', $file->getFilename(), 2); + if ($extension === $original_extension) { + $file->setFilename($filename); + $file->save(); + } } return $file; }