2016-04-23 4 views
0

Je viens de créer une simple fonction de fichier de téléchargement par:Yii2 - fichier binaire téléchargé ne peut pas être ouvert

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(); 
    } 

et en vue, le fichier sera téléchargé lorsque cliquez sur le lien

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

Le problème est que, après le fichier téléchargé, je ne peux pas ouvrir le fichier binaire tel: image, exe ... juste le fichier texte est OK, et je suis sûr que ce fichier sur le serveur ne pose aucun problème

Qu'est-ce que je dois faire?

+0

Avez-vous l'en-tête HTTP mis en « Content-Type » correctement? Sinon, le récepteur utilisera probablement "text/html" par défaut. – karpy47

+0

Merci, j'ai trouvé mon problème, effacez simplement toute sortie fictive avant d'envoyer le fichier par ob_end(), – Ryo

Répondre

0

Je trouve mon problème, juste effacer la sortie factice avant envoyer le fichier par OB_END()