2016-01-13 14 views
5

Sto facendo una funzione di caricamento di immagini per un sito Web utilizzando Laravel 5.1. A causa di problemi di sicurezza, desidero archiviare tali immagini nella cartella /storage/app anziché in /public. URL dell'immagine, ad esempio:Laravel 5.1 - Visualizza le immagini memorizzate nella cartella di archiviazione

/storage/app/images/<image_name> 

Al fine di ottenere l'immagine da /storage/app, ho istituito un percorso specifico per questo:

http://app.com/image/<image_name> 

Per puntare richieste di immagine a /storage:

Route::controllers([ 
    'image' => 'Frontend\ImageController', 
]); 

In ImageController, ecco il codice per creare la risposta:

public function missingMethod($filename = []) 
{ 
    if (is_array($filename)) { 
     $filename = implode('/', $filename); 
    } 
    // storage_path('app') - path to /storage/app folder 
    $path = storage_path('app') . '/' . $filename; 
    $file = \File::get($path); 
    $type = \File::mimeType($path); 

    return \Response::make($file,200) 
     ->header("Content-Type", $type); 
} 

Il mio problema è, dopo aver usato questa strada per recuperare le immagini, non riesco a visualizzarli, a mio avviso. Non c'erano 404, 500 o codici di stato di errore, l'URL di richiesta doveva essere, ma mostrava solo l'icona di un'immagine spezzata. C'è qualcosa di sbagliato nel mio codice?

Grazie!

+0

Possibile duplicato di [Laravel 5 - Come accedere all'immagine caricata in memoria in Visualizza?] (Http://stackoverflow.com/questions/30191330/laravel-5-how-to-access-image-uploaded-in- storage-in-view) – Bogdan

+0

L'ho provato ma l'immagine non può essere visualizzata, come menzionato sopra – xlKD

+1

Il file può essere letto dal server HTTP? C'è un motivo per cui hai implementato la gestione delle immagini nel metodo 'missingMethod'? Perché quel metodo accetta un argomento ed è una matrice di parametri, non il '$ nomefile 'come lo hai definito. Hai provato l'approccio del collegamento simbolico? – Bogdan

risposta

0

Scusate ragazzi, uno script php nella mia cartella /config ha spazio in testa e questo ha causato la risposta http non riuscita @@ Un tale errore senza senso ... Grazie a tutti per il vostro aiuto!

Problemi correlati