Chcę zobaczyć obraz, który umieściłem w moim interfejsie API Reszta.

oto plik, który przesłałem

Wypróbowałem ten kod,

public function MostrarImagenUsuario($id){
    $usuario = Usuario::find($id);
    $link = Storage::disk('public')->url('app/'.$usuario->foto);
    return response()->file($link);
}

Ale kiedy próbowałem go przetestować z listonoszem, wysyła mi ten błąd.

FileNotFoundException: plik „ http: //localhost/storage/app/public.nnBf11Yg2mXne8xzuR0wh.jpeg" rel="nofollow noreferrer"> http: //localhost/storage/app/public. a> ”nie istnieje w pliku

Też mam wypróbować tę metodę

public function MostrarImagenUsuario2($id){
    $usuario = Usuario::find($id);
    $link = Storage::get($usuario->foto);;
    return $link;
}

I otrzymuję taki wynik:

drugi wynik

Wreszcie nie wiem, jak to rozwiązać.

-1
juan gutierrez 1 kwiecień 2020, 07:23

3 odpowiedzi

Najlepsza odpowiedź

Twój kod nie działa, ponieważ próbujesz pobrać obraz z niepublicznego katalogu w programie laravel, wszystkie zasoby publiczne zawsze są przechowywane w głównym folderze publicznym. w przypadku obrazów, które możesz przechowywać w magazynie / app / public, ale jeśli chcesz uzyskać obraz, zawsze używaj folderu public / i oba są połączone linkiem synchronizacji.

php artisan storage:link

Użyj tego polecenia do synchronizacji łącza

Po uruchomieniu tego polecenia 1shortcut utworzony w głównym folderze publicznym. i możesz wszystkie obrazy z publicznego skrótu głównego.

$url = Storage::url('database filed name where you store image data');
1
M.Idrish 1 kwiecień 2020, 04:42

Upewnij się, że utworzyłeś łącze do pamięci, wywołując php artisan storage: link

Następnie możesz uzyskać adres URL pliku pamięci.

$ url = Storage :: url ('file.jpg');

0
Sarvil Ajwaliya 1 kwiecień 2020, 04:35

Użyj w ten sposób w modelu

Ta funkcja jest wykonywana, gdy otrzymasz właściwość image

public function getImageAttribute($value)
{
    if (!$value) {
        return 'http://placehold.it/160x160';
    }

    return env("APP_URL")."/storage/phones/".$value;
}

Ta funkcja jest wykonywana, gdy ustawisz właściwość obrazu z pliku wejściowego

   public function setImageAttribute($photo)
    {
        $this->attributes['Image'] = move_file($photo, 'phones');
    }
0
Yassine Raghibi 1 kwiecień 2020, 04:57