php - 在路径中找不到文件:file.xlsx
问题描述
我正在使用 Maatwebsite 包通过上传 Excel 文件将一些数据插入数据库。
所以这是我的路线:
Route::get('import-form', 'Olympiad\OlympiadExamExecutionController@importForm');
Route::post('import-form', 'Olympiad\OlympiadExamExecutionController@executeImport')->name('addcutsom.execution');
这是我的控制器:
use App\Imports\CustomExamImport;
use App\Olympiad\OlympiadExamExecution;
use Excel;
public function importForm()
{
return view('import');
}
public function executeImport(Request $request)
{
Excel::import(new CustomExamImport, $request->file);
return "Records are imported";
}
这是CustomExamImport
:
class CustomExamImport implements ToModel
{
public function model(array $row)
{
$user_id = DB::table('members')->where('mbr_national_code', $row[3])->value('mbr_usr_id');
return new OlympiadExamExecution([
'oex_correct_answer_count' => $row[7],
'oex_wrong_answer_count' => $row[8],
'oex_no_answer_count' => $row[9],
'oex_score' => $row[10],
]);
}
}
这是刀片形式:
<form action="{{ route('addcutsom.execution') }}" method="POST">
@csrf
<label class="control-label">Upload File:</label>
<input class="form-control" name="file" type="file">
<button class="btn btn-primary" type="submit">ثبت</button>
</form>
现在,当我尝试从计算机上传 Excel 文件时,出现此错误:
在路径中找不到文件:file.xlsx
那么那里出了什么问题呢?
解决方案
你得到了错误
在 null 上调用成员函数 getPath()
因为文件没有上传。
更改您的表单以包括enctype
上传文件
<form action="{{ route('addcutsom.execution') }}" method="POST" enctype="multipart/form-data">
您可以在此处找到有关属性的模式详细信息
推荐阅读
- javascript - 函数道具 useEffect 最佳实践
- python - 根据另一个单元格与另一个数据帧的单元格的比较来更改一个数据帧中的单元格值 - 熊猫
- r - 为什么在我尝试访问新对象时以下 R 命令会崩溃
- html - 需要 Html 头部元标记解释吗?
- java - Log4J ConsoleAppender 不可分配给 Athena JDBC 驱动程序
- c# - 构建时编辑时 Visual Studio 的行为
- java - 如何使用 Dropbox API V2 下载某些文件?
- sql-server - 为什么我们的页面预期寿命会保持不变
- python - 透视类属性
- php - 我如何将每个从 mysql 获取的数据发送到另一个页面