Ligação de armazenagem Laravel 5.4

gostaria de mostrar uma imagem no ficheiro html vou para a pasta de ligações público / armazenamento / imagem está em branco, mas no armazenamento / imagem encontro o ficheiro e também é salvo na base de dados.*

@foreach($cvs as $cv)
                    <div class="col-sm-6 col-md-4">
                    <div class="thumbnail">
                        <img src="{{ asset('storage/'.$cv->photo) }}" alt="...">
                        <div class="caption">
                        <h3>{{ $cv->titre }}</h3>
                        <p>{{$cv->presentation}}</p>
                        <p>
                            <a href="#" class="btn btn-primary" role="button">Afficher</a>
                            <a href="#" class="btn btn-success" role="button">Modifier</a>
                            <a href="#" class="btn btn-danger" role="button">Supprimer</a>
                         </p>
                        </div>
                    </div>
                    </div>
                    @endforeach
                    </div>
               </div>
Author: mouhamed slaimi, 2018-05-05

3 answers

O disco public destina-se a ficheiros que serão acessíveis ao público. Por omissão, o disco public usa o controlador local e guarda estes ficheiros em storage/app/public. Para torná-los acessíveis a partir da web, você deve criar um link simbólico de public/storage para storage/app/public. Laravel doc

Criar uma ligação simbólica no Linux

ln -s source_file myfile
 1
Author: Mayank Majithya, 2018-05-05 04:00:00

Como observa Mayank Majithya, uma ligação simbólica é uma forma comum de aceder aos ficheiros storage/app/public/ do directório public/, e de facto o método o Docs Laravel diz que deve usar.

Se você está em hospedagem compartilhada que não permite isso, você também poderia tentar usar a função auxiliar de Laravel storage_path(), Assim: <img src="{{ storage_path('subpaths/under/storage/filename.jpg') }}"> (referência .

Também reparei que menciona que as imagens estão armazenadas na base de dados. Se você quer dizer que todo o arquivo é armazenado, ele pode ser mais eficiente (uma vez que você ter o caminho do arquivo descoberto) para armazenar apenas o caminho do arquivo em seu banco de dados, em vez de todo o arquivo (uma vez que ele já está armazenado no disco). Você pode então usar o seu modelo para obter o caminho (assumindo que a sua tabela tem colunas para, digamos, 'src' e 'alt'):
<img src="{{ $mymodel->src }}" alt="{{ $mymodel->alt }}">
 1
Author: Jacob Runge, 2018-05-05 05:16:22

Resolveu - o apenas com uma simples modificação nos sistemas de configuração/ficheiros dos sistemas de ficheiros de:

'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ]

To:

'local' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
        ]
 1
Author: mouhamed slaimi, 2018-05-09 16:58:52