[Mime] Fix boundary header

This commit is contained in:
Guillaume Pédelagrabe 2020-03-11 13:15:35 +01:00 committed by Fabien Potencier
parent 14b825b24f
commit 453078ff37
2 changed files with 13 additions and 1 deletions

View File

@ -91,7 +91,7 @@ abstract class AbstractMultipartPart extends AbstractPart
private function getBoundary(): string
{
if (null === $this->boundary) {
$this->boundary = '_=_symfony_'.time().'_'.bin2hex(random_bytes(16)).'_=_';
$this->boundary = strtr(base64_encode(random_bytes(6)), '+/', '-_');
}
return $this->boundary;

View File

@ -91,4 +91,16 @@ class FormDataPartTest extends TestCase
$this->assertEquals($foo, $parts[0]->bodyToString());
$this->assertEquals($bar, $parts[1]->bodyToString());
}
public function testBoundaryContentTypeHeader()
{
$f = new FormDataPart([
'file' => new DataPart('data.csv', 'data.csv', 'text/csv'),
]);
$headers = $f->getPreparedHeaders()->toArray();
$this->assertRegExp(
'/^Content-Type: multipart\/form-data; boundary=[a-zA-Z0-9\-_]{8}$/',
$headers[0]
);
}
}