Maison > Questions et réponses > le corps du texte
P粉8521147522023-09-04 09:39:51
Votre méthode est incorrecte. Dans Laravel, le cycle de vie d'une requête commence lorsque la requête arrive sur le serveur et se termine lorsque la réponse est renvoyée au navigateur de l'utilisateur. Lorsque vous mettez une tâche en file d'attente dans Laravel, cela signifie que la tâche sera traitée plus tard, peut-être même sur un autre serveur. Lorsque le travail s'exécute réellement, le cycle de vie de la demande d'origine est terminé. Par conséquent, vous ne pouvez pas accéder aux données de demande dans une tâche en file d'attente.
Si vous devez utiliser le fichier téléchargé dans une tâche en file d'attente, vous devez stocker le fichier téléchargé dans un emplacement auquel la tâche peut accéder. Il peut s'agir du système de fichiers de votre serveur ou d'un service de stockage cloud.
Dans votre contrôleur vous avez stocké temporairement le fichier pour traitement avec Excel :
$file = request()->file('file');
Cependant, vous ne conservez pas le fichier, c'est pourquoi le fichier n'est pas disponible pendant l'exécution du travail. Vous devez stocker vos fichiers dans un endroit plus permanent.
Après avoir stocké le fichier de manière permanente, vous pouvez lire le fichier à partir du nouvel emplacement.