我正在尝试上传多张图片,每张图片都与不同的员工相关联。这是一个示例场景。我有4名员工。我希望为2名员工添加不同的形象,而不是休息2。现在发生的事情是:
对于2和3种情况,我希望为每位员工上传相关图片,如果没有上传,我会上传默认图片。
以下是表格:
@if ($employee->payment_option == 2)
<div class="form-group{{ $errors->has('receipt') ? ' has-error' : '' }}">
<input type="file" name="receipt[]" multiple>
@if ($errors->has('receipt'))
<span class="help-block">
<strong>{{ $errors->first('receipt') }}</strong>
</span>
@endif
</div>
@endif
这是控制器存储方法
public function store(Request $request)
{
if ($request->hasFile('receipt')) {
$files = $request->file('receipt');
foreach ($files as $key => $file) {
$extension = $file->getClientOriginalExtension();
$fileNameWithExt = $file->getClientOriginalName();
$fileName = pathinfo($fileNameWithExt, PATHINFO_FILENAME);
$fileName = $fileName.'_'.time().'.'.$extension;
$folderpath = 'public/images'.'/';
$file->move($folderpath, $fileName);
}
}
foreach ($request->employee_id as $key => $val) {
$payrolls = new Payroll;
$payrolls->employee_id = $val;
if (!empty($request->receipt)) {
$payrolls->receipt = $fileName;
} else {
$payrolls->receipt = 'noimage.jpg';
}
$payrolls->save();
}
return redirect('/');
}
上传多个文件有几个问题,他们的解决方案很好。但是,我需要上传与每个员工关联的每个文件。如果没有为员工上传文件,则应附上默认图像。
答案 0 :(得分:0)
<input type="file" name="receipt[]" multiple>
我认为您对所有表单使用相同的名称receipt
...使用不同的名称,例如“receipt1
,receipt2
”......就像这样,并相应地更改控制器。