Dans Laravel, comment afficher les fichiers image stockés dans le répertoire de stockage.
滿天的星座
滿天的星座 2017-05-16 16:48:12
0
1
608

J'ai mentionné que certaines images et fichiers téléchargés par les utilisateurs sont enregistrés dans le répertoire de stockage (pour des raisons de sécurité, nous ne voulons pas que les utilisateurs les téléchargent à volonté),

Alors, comment devrions-nous obtenir le chemin lorsque nous devons afficher le fichier ?

滿天的星座
滿天的星座

répondre à tous(1)
滿天的星座

Deux solutions, la première, PHP lit le fichier et le génère, le code dans Laravel est à peu près le suivant

// 控制器
// https://github.com/shellus/shcms/blob/v2.0.0/app/Http/Controllers/FileController.php

class FileController extends Controller
{
    public function show($id){
        return File::findOrFail($id) -> downResponse();
    }
}

// Model
https://github.com/shellus/shcms/blob/v2.0.0/app/File.php

public function downResponse(){
    return new BinaryFileResponse($this -> downToLocal());
}
public function downToLocal(){
    $temp_path = tempnam(sys_get_temp_dir(), $this->id);
    $is_success = file_put_contents($temp_path, \Storage::disk('public')->get($this -> full_path));
    return $temp_path;
}
    

Deuxièmement, utilisez la commande Linux ln pour créer un lien symbolique de dossier de stockage vers le dossier public, mais cela n'est pas différent du stockage direct de fichiers en public.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal