灵活运用 - 返回图片音视频等数据流

本文导航

  1. 要点
  • 作者:KK

  • 发表日期:2016.9.8


以下代码适用于输出任何文件数据流,可以应用在经常见到的图片视频音频图标字体等资源上,特别是图片

public function testAction(){
	$file = 'D:/a.jpg';	//mp4  mp3  png  gif  ico  ttf  wow 等
	$response = Yii::$app->response;	
	$response->headers->set('Content-type', \yii\helpers\FileHelper::getMimeType($file));
	$response->format = \yii\web\Response::FORMAT_RAW;
	$response->stream = fopen($file, 'r');	
	return $response;
}

要点

  1. 设置响应header的Content-type

  2. 设置response组件的format(数据格式)属性为\yii\web\Response::FORMAT_RAW

  3. 设置response组件的stream(数据流)属性为数据文件的句柄