Note that this method only prepares the response for file sending. The file is not sent
until Response::send is called explicitly or implicitly. The latter is done after you return from a controller action.
public sendContentAsFile ( string $content, string $attachmentName, array $options = [] ) | ||
$content | string | the content to be sent. The existing [[content]] will be discarded. |
$attachmentName | string | the file name shown to the user. |
$options | array | additional options for sending the file. The following options are supported: - `mimeType`: the MIME type of the content. Defaults to 'application/octet-stream'. - `inline`: boolean, whether the browser should open the file within the browser window. Defaults to false, meaning a download dialog will pop up. |
/** * https://github.com/yiisoft/yii2/issues/7529 */ public function testSendContentAsFile() { ob_start(); $this->response->sendContentAsFile('test', 'test.txt')->send(['mimeType' => 'text/plain']); $content = ob_get_clean(); static::assertEquals('test', $content); static::assertEquals(200, $this->response->statusCode); $headers = $this->response->headers; static::assertEquals('application/octet-stream', $headers->get('Content-Type')); static::assertEquals('attachment; filename="test.txt"', $headers->get('Content-Disposition')); static::assertEquals(4, $headers->get('Content-Length')); }