recherche

Maison  >  Questions et réponses  >  le corps du texte

Dans Laravel, comment afficher les fichiers image stockés dans le répertoire de stockage.

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 ?

滿天的星座滿天的星座2749 Il y a quelques jours594

répondre à tous(1)je répondrai

  • 滿天的星座

    滿天的星座2017-05-16 16:50:12

    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.

    répondre
    0
  • Annulerrépondre