Laravel에서 파일 액세스를 요청하는 대기열 작업
<p>안녕하세요 여러분, 사용자가 가져온 파일을 통해 데이터베이스에 일부 레코드를 삽입하기 위해 대기 중인 Laravel 작업이 있습니다. 하지만 업로드된 파일을 가져오기 위해 작업의 요청 개체에 액세스할 때마다 null이 발생합니다. 그러나 파일은 컨트롤러에서 정상적으로 수신됩니다. 어떤 아이디어가 있나요? </p>
<p>다음과 같이 컨트롤러에서 가져오기 방법을 찾으세요. </p>
<pre class="brush:php;toolbar:false;">공개 함수 가져오기(ImportPointRequest $request)
{
저장소::makeDirectory('import_logs');
$file = 요청()->file('파일');
$fileName = 'importlog_date_' . 날짜('Y-m-d') . auth()->id() .
$log파일 = '가져오기_로그/' .
$readerTypes = ['xlsx' => 엑셀::XLSX, 'xls' => 엑셀::XLS, 'csv' =>
$link = 경로('file.show', ['import_logs', $fileName]);
노력하다 {
ExcelFacade::import(new PointsImportHeading(), $file);
} 잡기(예외 $e) {
return $this->returnBadRequest(config('point.error-codes.import-fail'), $e->getMessage());
}
(new PointsImport(auth()->user(), auth()->user()->account_id, $logFile))->queue(
$file->getRealPath(),
없는,
$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>다음과 같이 작업에서 getImportedFileContent 메소드를 찾으세요. </p>
<pre class="brush:php;toolbar:false;">보호된 함수 getUploadedFileContent(): 배열
{
return Excel::toArray(new PointsImportHeading(), request()->file('file'));
}</pre>
<p>문제는 이 <code>request()->file('file')</code> 부분이 항상 null을 반환한다는 것입니다. </p>