2016-04-23 48 views
0

我只是創建一個簡單的下載文件中的函數是:Yii2 - 下載不能打開二進制文件

public function actionDownload(){ 
     $id = Yii::$app->request->getQueryParam('id'); 
     // $id = Yii::$app->request->post('file_id'); 
     $path =(new DocumentCRUD())->getDocumentPath($id); 
     $response = Yii::$app->response->sendFile($this->ROOT_FOLDER.'/'.$path); 
     $response->send(); 
    } 

,並在視圖,文件就會被下載時,點擊鏈接

window.location.href="document/download?id="+file_id 

的問題是在文件下載後,我無法打開二進制文件:image,exe ...只是文本文件沒問題,並且確定服務器上的這些文件沒有問題

我該怎麼辦?

+0

是否設置爲HTTP頭「內容類型」正確地發送文件?如果不是,接收器可能會默認使用「text/html」。 – karpy47

+0

謝謝,我發現我的問題,只需在ob_end()發送文件之前清除所有虛擬輸出, – Ryo

回答

0

,我發現我的問題,只是清除所有僞輸出之前OB_END()