#Laravel vue storage

1 messages · Page 1 of 1 (latest)

timid harbor
#

php artisan storage:link

#

luego revisas si el folder realmente está vinculado

#

y cuando guardas los archivos deberías poder guardarlos públicamente

#

con el método storePublicly

#

con laravel

#

también revisa si puedes acceder a la url de la imagen directamente en el navegador

barren arch
#

ui, perdon que no sabia esto de los hilos xd

timid harbor
#

xD ntp, es que así es más fácil agrupar ideas 👍🏽

barren arch
#

aqui tengo bien vinculado el storage en public no?

timid harbor
#

a ver tu carpeta de storage/app/public

#

parece que sí

barren arch
#

Ah, creo que ahora entiendo

#

estaba guardando las imagenes en storage/avatars

timid harbor
#

entonces tienes que elegir el disco público

barren arch
#

pero tendrian que estar en storage/public/avatars no?

timid harbor
#

Storage::disk('public')

barren arch
#

okey, voy a intentarlo

timid harbor
#

;) checa esta parte de la doc

barren arch
#
    public function store(Request $request)
    {
 
        $request->validate([
            'name' => ['required'],
            'email' => ['required', 'email', 'unique:user'],
            'password' =>['required'],
            'image' => 'image|mimes:jpeg,png,jpg,gif,svg',
        ]);

        $file = $request->file('img');
        $path = $request->img->store('avatars');
        Storage::setVisibility($path, 'public');
        
        $user = User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => Hash::make($request->password),
            'permissions' => 1,
            'img' => $path,
        ]);

        return response()->json([
            'user' => $user
        ]);
    }
#

mmm, algo tal que asi tendria que quedar??

#

uso laravel 8, por si hay algun metodo que no funcione

timid harbor
#

sí, pero además tienes que utilizar el disco público

#

$request->file('img')->store('avatars', 'public');

#

y ya luego la visibilidad para que tenga los permisos en linux

barren arch
timid harbor
#

nope, están bien

#

solo la de $path = $request->img->store('avatars') en lugar de hacerle store('avatars') añadele el disco al final

#

$path = $request->img->store('avatars', 'public')

barren arch
#

vale okey, ahora entiendo

#

perfe, pues voy a ver tmb lo de los permisos de linux

#

que es en config/filesystems

timid harbor
#

eso lo hace tu otra línea la de Storage::setVisibility($path, 'public') así que no necesitas hacer nada más 👍🏽

barren arch
#

oh, perfecto

#

y ahora para llamar al src de la imagen desde vue me vale con ponerle la ruta de avatars/img.png?

timid harbor
#

debería ser /storage/avatars/img.png

#

pero cuando guardas el path se guarda así, creo

barren arch
#

pues voy a comprobarlo

timid harbor
#

dale 😄

barren arch
#

Error 422 xd

#

ah espera que es pq tengo el mimo usuario ya en la bd creo

#

mmm, me llega a guardar la imagen en app/public/avatars pero despues me suelta error 500 y no me registra al usuario

#

creo que esta fallando esta linea

#
Storage::setVisibility($path, 'public');
timid harbor
#

🤔 no debería thisisfine

#

sino borra esa línea y en lugar de store pónle storePublicly

barren arch
#

Llevo probando todo el rato y no he conseguido que funcione con el setVisibility

#

si el si que va bien

barren arch
#

hay alguna forma de comprobar que los permisos para linux estan bien??

timid harbor
#

mmm debería ser suficiente con el store publicly, laravel se encarga de eso

barren arch
#

Okey espero que vaya bien cuando toque desplegarlo xddd

#

Muchisimas gracias en!!!

timid harbor
#

sí, y solo ten cuidado de ejecutar php artisan storage:link una y solo una vez, no más

barren arch
#

vale, me entro miedo, no quiero saber que pasa

#

bueno en verdad si que quiero saber que pasa, pero no que me pase a mi

timid harbor
#

xD solo se arruina el link que hace y se vincula a sí mismo o algo así xD jajaja