您的方法是不正確的。在Laravel中,請求的生命週期從請求到達(dá)伺服器開始,當(dāng)回應(yīng)傳送回使用者的瀏覽器時結(jié)束。當(dāng)您在Laravel中排隊(duì)一個作業(yè)時,這表示該作業(yè)將在稍後處理,甚至可能在不同的伺服器上處理。當(dāng)作業(yè)實(shí)際運(yùn)作時,原始的請求生命週期已經(jīng)結(jié)束。因此,您無法在排隊(duì)的作業(yè)中存取請求資料。
如果您需要在排隊(duì)的作業(yè)中使用上傳的文件,您需要將上傳的文件儲存在作業(yè)可以存取的位置。這可以是您伺服器的檔案系統(tǒng)或雲(yún)端儲存服務(wù)。
在您的控制器中,您已經(jīng)暫時儲存檔案以便使用Excel進(jìn)行處理:
$file = request()->file('file');
然而,您沒有持久化文件,這就是為什麼在作業(yè)運(yùn)行時文件不可用的原因。您需要將文件儲存在更持久的地方。
在永久儲存檔案後,您可以從新位置讀取檔案。