国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

從Laravel發(fā)出請求以存取文件的佇列任務(wù)
P粉762447363
P粉762447363 2023-09-03 13:43:56
0
1
657
<p>大家好,我有一個排隊(duì)的 Laravel 作業(yè),用於透過使用者匯入的檔案向資料庫中插入一些記錄。但是每當(dāng)我在作業(yè)中存取請求物件以取得上傳的檔案時,我得到的是 null。然而,在控制器中文件是正常接收的。有什麼想法嗎? </p> <p>在控制器中找到導(dǎo)入方法如下:</p> <pre class="brush:php;toolbar:false;">public function import(ImportPointRequest $request) { Storage::makeDirectory('import_logs'); $file = request()->file('file'); $fileName = 'importlog_date_' . date('Y-m-d') . '-user_' . auth()->id() . '.xlsx'; $logFile = 'import_logs/' . $fileName; $readerTypes = ['xlsx' => Excel::XLSX, 'xls' => Excel::XLS, 'csv' => Excel::CSV]; $link = route('file.show', ['import_logs', $fileName]); try { ExcelFacade::import(new PointsImportHeading(), $file); } catch (\Exception $e) { return $this->returnBadRequest(config('point.error-codes.import-fail'), $e->getMessage()); } (new PointsImport(auth()->user(), auth()->user()->account_id, $logFile))->queue( $file->getRealPath(), null, $readerTypes[request()->file('file')->getClientOriginalExtension()] )->chain([new AfterImportJob(auth()->id(), $logFile, $link)]); return $this->returnSuccess(trans('point::point.import-queued', ['module' => trans('point::point.point')])); }</pre> <p>在作業(yè)中找到 getImportedFileContent 方法如下:</p> <pre class="brush:php;toolbar:false;">protected function getUploadedFileContent(): array { return Excel::toArray(new PointsImportHeading(), request()->file('file')); }</pre> <p>問題在於這部分 <code>request()->file('file')</code> 總是回傳 null。 </p>
P粉762447363
P粉762447363

全部回覆(1)
P粉852114752

您的方法是不正確的。在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)行時文件不可用的原因。您需要將文件儲存在更持久的地方。

在永久儲存檔案後,您可以從新位置讀取檔案。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板