2016-07-07 8 views
1

Mein Problem ist, dass ich versuche, ein Bild außerhalb des public_html Ordner meines Projekts gelegen zu zeigen, denn dies ist nach Ansicht ich eine Controller-Methode in Yü aufrufen, den folgenden Befehl ausführen:Wie kann ich ein Bild außerhalb von public_html in yii2 anzeigen?

public function actionImagenreadfile2($file) { 

    if(file_exists($file)){ 
     header('Content-Type: '. FileHelper::getMimeType($file)); 
     ob_clean(); 
     readfile($file); 
    } 
} 

So wie ich nennen diese Controller aus der Sicht ist die folgende:

<img src="<?php Yii::$app->runAction('ficha/imagenreadfile2', ['file' => $imagen]); ?>"> 

Wo $ imagen den Bildpfad ist, aber zu der Zeit, wenn das Anzeigebild als Text/Plan angezeigt wird.

+0

Sie auf dieses Thema beziehen: http://stackoverflow.com/questions/38105185/yii-2-upload- document-outside-public-folder/38107705 # 38107705 Es ist ähnlich brauchen – Eduardo

Antwort

2

Sie sollten Ihre Ansicht beheben:

return \Yii::$app->response->sendFile($file); 

Lesen Sie mehr über sending file with Yii2:

<img src="<?= Url::to(['ficha/imagenreadfile2', 'file' => $imagen]); ?>"> 

Sie auch yii\web\Response::sendFile() in Ihrem Controller verwenden könnte.

Und das wichtigste, sollten Sie $file überprüfen, da die Aktion völlig ungesichert ist ...

+0

check $ datei wie? –