Solución
- Ve a
vendor/livewire/livewire/src/Controllers/FileUploadHandler.phpy comenta esta líneaabort_unless(request()->hasValidSignature(), 401); - 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'); - Vaya a la carpeta
publicde su aplicación y cree el directoriolivewire. (mkdir livewire) Después de eso, vaya a ese directorio y desde allí creará un enlace simbólico que apuntarápublic/livewire/preview-fileal directoriostorage/app/public/livewire-tmpde 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
- Necesitamos comentar esa línea, porque verifica si tiene
ssl certificateo no. En caso contrario, abortará la solicitud. Si tiene un certificado SSL, puede omitir este paso. - En este paso, creamos
temporary filey damos acceso de escritura. - El último paso es simplemente crear un archivo
symbolic link. Necesitamos crear estosymbolic linkporque, 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