Apertura immagine

Buongiorno a tutti,

ho il seguente problema,

ho salvato delle immagini nella cartella uploads/upload

nella view ho un link

echo Html::a($upload, ['download-file', 'nameFile' => $upload, 'id' => $message->thread], ['class' => '', 'target' => '_blank'])

che chiama una actions la quale ritorna l’immagine

public function actionDownloadFile($nameFile, $id = null)
{
....
....
    return Yii::$app->response->sendFile($target, $nameFile);

tutto funziona bene, il problema è che se si tratta di un file pdf, questo viene correttamente aperto in una nuova tab

se si tratta invece di una immagine jpg, parte automaticamente il download, vorrei invece che similmente al pdf, venisse mostrata l’immagine in una nuova tab

cosa stò sbagliando?

grazie

Per visualizzarla probabilmente devi usare la send()

Grazie per la risposta,

utilizzando la send al posto di sendFile apre una nuova tab ma completamente bianca, con sendFile invece i pdf venivano aperti in una nuova tab mentre i file di tipo immagine scaricati, quello che vorrei ottenere io è aprire i file e visualizzarli in una nuova tab, poi eventualmente fare il download

Dovrai usare due funzioni diverse per PDF e immagini, credo

@massimop1973 nel metodo sendFile (Response, yii\web\Response | API Documentation for Yii 2.0 | Yii PHP Framework) esiste l’opzione “inline”, che se valorizzata a true, mostra il contenuto in linea anzichè forzare il download.

Per cui avrai:

return Yii::$app->response->sendFile($target, $nameFile, ['inline' => true]);
1 Like

@fabriziocaldarelli grazie per la risposta, funziona perfettamente!!!