Skip to content

Commit 4526005

Browse files
authored
[11.x] Fix client path value in file uploads (#53941)
* [11.x] Fix client path value in file uploads * update composer.json | http-foundation * fix style
1 parent b6f5f02 commit 4526005

File tree

3 files changed

+48
-2
lines changed

3 files changed

+48
-2
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"symfony/console": "^7.0.3",
4848
"symfony/error-handler": "^7.0.3",
4949
"symfony/finder": "^7.0.3",
50-
"symfony/http-foundation": "^7.0.3",
50+
"symfony/http-foundation": "^7.2.0",
5151
"symfony/http-kernel": "^7.0.3",
5252
"symfony/mailer": "^7.0.3",
5353
"symfony/mime": "^7.0.3",

src/Illuminate/Http/UploadedFile.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public static function createFromBase(SymfonyUploadedFile $file, $test = false)
133133
{
134134
return $file instanceof static ? $file : new static(
135135
$file->getPathname(),
136-
$file->getClientOriginalName(),
136+
$file->getClientOriginalPath(),
137137
$file->getClientMimeType(),
138138
$file->getError(),
139139
$test

tests/Http/HttpUploadedFileTest.php

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Illuminate\Http\UploadedFile;
66
use PHPUnit\Framework\TestCase;
7+
use Symfony\Component\HttpFoundation\File\UploadedFile as SymfonyUploadedFile;
78

89
class HttpUploadedFileTest extends TestCase
910
{
@@ -19,4 +20,49 @@ public function testUploadedFileCanRetrieveContentsFromTextFile()
1920

2021
$this->assertSame('This is a story about something that happened long ago when your grandfather was a child.', trim($file->get()));
2122
}
23+
24+
public function testUploadedFileInRequestContainsOriginalPathAndName()
25+
{
26+
$symfonyFile = new SymfonyUploadedFile(__FILE__, '');
27+
$this->assertSame('', $symfonyFile->getClientOriginalName());
28+
$this->assertSame('', $symfonyFile->getClientOriginalPath());
29+
$file = UploadedFile::createFromBase($symfonyFile);
30+
$this->assertSame('', $file->getClientOriginalName());
31+
$this->assertSame('', $file->getClientOriginalPath());
32+
33+
$symfonyFile = new SymfonyUploadedFile(__FILE__, 'test.txt');
34+
$this->assertSame('test.txt', $symfonyFile->getClientOriginalName());
35+
$this->assertSame('test.txt', $symfonyFile->getClientOriginalPath());
36+
$file = UploadedFile::createFromBase($symfonyFile);
37+
$this->assertSame('test.txt', $file->getClientOriginalName());
38+
$this->assertSame('test.txt', $file->getClientOriginalPath());
39+
40+
$symfonyFile = new SymfonyUploadedFile(__FILE__, '/test.txt');
41+
$this->assertSame('test.txt', $symfonyFile->getClientOriginalName());
42+
$this->assertSame('/test.txt', $symfonyFile->getClientOriginalPath());
43+
$file = UploadedFile::createFromBase($symfonyFile);
44+
$this->assertSame('test.txt', $file->getClientOriginalName());
45+
$this->assertSame('/test.txt', $file->getClientOriginalPath());
46+
47+
$symfonyFile = new SymfonyUploadedFile(__FILE__, '/foo/bar/test.txt');
48+
$this->assertSame('test.txt', $symfonyFile->getClientOriginalName());
49+
$this->assertSame('/foo/bar/test.txt', $symfonyFile->getClientOriginalPath());
50+
$file = UploadedFile::createFromBase($symfonyFile);
51+
$this->assertSame('test.txt', $file->getClientOriginalName());
52+
$this->assertSame('/foo/bar/test.txt', $file->getClientOriginalPath());
53+
54+
$symfonyFile = new SymfonyUploadedFile(__FILE__, '/foo/bar/test.txt');
55+
$this->assertSame('test.txt', $symfonyFile->getClientOriginalName());
56+
$this->assertSame('/foo/bar/test.txt', $symfonyFile->getClientOriginalPath());
57+
$file = UploadedFile::createFromBase($symfonyFile);
58+
$this->assertSame('test.txt', $file->getClientOriginalName());
59+
$this->assertSame('/foo/bar/test.txt', $file->getClientOriginalPath());
60+
61+
$symfonyFile = new SymfonyUploadedFile(__FILE__, 'file:\\foo\\test.txt');
62+
$this->assertSame('test.txt', $symfonyFile->getClientOriginalName());
63+
$this->assertSame('file:/foo/test.txt', $symfonyFile->getClientOriginalPath());
64+
$file = UploadedFile::createFromBase($symfonyFile);
65+
$this->assertSame('test.txt', $file->getClientOriginalName());
66+
$this->assertSame('file:/foo/test.txt', $file->getClientOriginalPath());
67+
}
2268
}

0 commit comments

Comments
 (0)