File upload multibyte fix (PCRE_UTF8 flag)

This commit is contained in:
Milos Stojanovic 2019-09-05 15:50:25 +02:00
parent e0cc5772a5
commit ec9af3a777
2 changed files with 40 additions and 1 deletions

View File

@ -131,7 +131,7 @@ class Tmpfs implements Service, TmpfsInterface
[\x00-\x1F]| # control characters http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx
[\x7F\xA0\xAD]| # non-printing characters DEL, NO-BREAK SPACE, SOFT HYPHEN
[;\\\{}^\~`] # other non-safe
~x',
~xu',
'-',
(string) $filename
);

View File

@ -356,4 +356,43 @@ class UploadTest extends TestCase
],
]);
}
public function testFileUploadWithMultibyteName()
{
$this->signIn('john@example.com', 'john123');
$files = ['file' => new UploadedFile(TEST_FILE, 'ąčęėįšųū.txt', 'text/plain', null, true)];
$data = [
'resumableChunkNumber' => 1,
'resumableChunkSize' => 1048576,
'resumableCurrentChunkSize' => 0.5 * 1024 * 1024,
'resumableTotalChunks' => 1,
'resumableTotalSize' => 0.5 * 1024 * 1024,
'resumableType' => 'text/plain',
'resumableIdentifier' => 'CHUNKS-SIMPLE-TEST',
'resumableFilename' => "断及服务层流.txt",
'resumableRelativePath' => '/',
];
$this->sendRequest('POST', '/upload', $data, $files);
$this->assertOk();
$this->sendRequest('POST', '/getdir', [
'dir' => '/',
]);
$this->assertResponseJsonHas([
'data' => [
'files' => [
0 => [
'type' => 'file',
'path' => '/断及服务层流.txt',
'name' => '断及服务层流.txt',
],
],
],
]);
}
}