Skip to content

Commit 27179a8

Browse files
committed
Just set content-type to multipart/form-data if there are files
1 parent 267ba17 commit 27179a8

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/Request.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,9 @@ public function setFiles(array $files) : static
366366
if ($this->isMethod(Method::GET)) {
367367
$this->setMethod(Method::POST);
368368
}
369+
if ($files) {
370+
$this->setContentType('multipart/form-data');
371+
}
369372
$this->files = $files;
370373
return $this;
371374
}

tests/RequestTest.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,14 @@ public function testFiles() : void
121121
self::assertFalse($this->request->hasFiles());
122122
self::assertSame('GET', $this->request->getMethod());
123123
self::assertSame([], $this->request->getFiles());
124+
self::assertNull($this->request->getHeader('content-type'));
125+
$this->request->setFiles([]);
126+
self::assertNull($this->request->getHeader('content-type'));
124127
$this->request->setFiles(['upload' => __FILE__]);
128+
self::assertSame(
129+
'multipart/form-data; charset=UTF-8',
130+
$this->request->getHeader('content-type')
131+
);
125132
self::assertTrue($this->request->hasFiles());
126133
self::assertSame('POST', $this->request->getMethod());
127134
$this->request->setMethod('PUT');
@@ -225,10 +232,7 @@ public function testToStringWithCustomEncoding() : void
225232
self::assertNull($this->request->getHeader('Accept-Encoding'));
226233
}
227234

228-
/**
229-
* TODO: Update this test!
230-
*/
231-
public function disabledTestToStringMultipart() : void
235+
public function testToStringMultipart() : void
232236
{
233237
$file = __DIR__ . '/support/foo.txt';
234238
$request = new Request('http://localhost');

0 commit comments

Comments
 (0)