限制文件大小和文件类型



如何限制控制器上的文件大小和文件类型?我尝试了不同的方法,但不应该奏效。

这是我的控制器:

public function add_presentation_detail(Request $request){
$start_date     = $request->start_date;
$input_file     = $request->file;
$nik    = Sentinel::getUser()->nik;
$data   = AccelerateMentee::select(
'accelerate_mentee.*',
'accelerate_rotation.start_date',
'accelerate_rotation.id as id_rotation'
)
->leftJoin('accelerate_rotation', 'accelerate_rotation.id_mentee', '=', 'accelerate_mentee.id')
->where([
['accelerate_mentee.nik', '=', $nik],
['accelerate_rotation.status', '<>', 'approved']
])
->first();
if (!empty($request->file) && $request->hasFile('file')) {

$filename       = $input_file->getClientOriginalName();
$new_filename   = "presentation_" . "-" . $filename;
$upload_file    = $input_file->storeAs('public/accelerate/',$new_filename);
} else {
$new_filename = null;
}
$update = AccelerateRotation::where('id', '=', $data->id_rotation)
->update([
'status'            => 'submitted',
'panel_time_start'  => $start_date,
'file'              => $new_filename,
]);
return redirect()->back();

谢谢你,我现在很困惑。

您永远不应该使用来自用户输入的输入数据。您不能信任该用户。这就是为什么你应该使用Laravel验证。在这里你可以阅读更多关于它的信息。在使用文件存储之前,你应该验证用户输入。如果一切顺利,那么您应该继续使用这些经过验证的输入。

$validatedData = $request->validate([
'file' => 'required|size:1024' // Validate that an uploaded file is exactly 1024 kilobytes...
]);

然后你使用这个经过验证的数据

最新更新