Uploads archivos con livewire falla en producción

Solución

  1. Ve a vendor/livewire/livewire/src/Controllers/FileUploadHandler.php y comenta esta línea abort_unless(request()->hasValidSignature(), 401);
  2. Vaya a vendor/livewire/livewire/src/TemporaryUploadedFile.phpy en lugar de esto $tmpfile = tmpfile();, escriba esto: $tmpfname = tempnam(sys_get_temp_dir(), ''); $tmpFile = fopen($tmpfname, 'w');
  3. Vaya a la carpeta public de su aplicación y cree el directorio livewire. ( mkdir livewire) Después de eso, vaya a ese directorio y desde allí creará un enlace simbólico que apuntará public/livewire/preview-file al directorio storage/app/public/livewire-tmp de su aplicación:

ln -s preview-file ../../storage/app/public/livewire-tmp

Y recuerde, debe otorgar 755 permisos a las carpetas que están dentro del directorio storage/app/public

Explicación

  1. Necesitamos comentar esa línea, porque verifica si tiene ssl certificate o no. En caso contrario, abortará la solicitud. Si tiene un certificado SSL, puede omitir este paso.
  2. En este paso, creamos temporary file y damos acceso de escritura.
  3. El último paso es simplemente crear un archivo symbolic link. Necesitamos crear esto symbolic link porque, al cargar un archivo, Livewire crea un archivo temporal con esa URL.

Fuente: https://stackoverflow.com/questions/73294167/livewire-image-upload-fails-on-production-server

Deja un comentario