Php Laravel文件上载(多个)
我有一个小应用程序,我可以一个接一个(不是一次)上传多个文件,但由于某种原因,每次我上传一个文件,另一个就消失了 如下面的屏幕截图所示: 如果我'dd($request->all());,只列出一个文件 这是我的控制器:Php Laravel文件上载(多个),php,laravel,file-upload,Php,Laravel,File Upload,我有一个小应用程序,我可以一个接一个(不是一次)上传多个文件,但由于某种原因,每次我上传一个文件,另一个就消失了 如下面的屏幕截图所示: 如果我'dd($request->all());,只列出一个文件 这是我的控制器: public function profileUpdate(Request $request, User $user) { $this->validate($request, [ 'name' => 'required',
public function profileUpdate(Request $request, User $user)
{
$this->validate($request, [
'name' => 'required',
'firstname' => 'required',
'email' => 'required',
'address' => 'nullable|string',
'city' => 'nullable|string',
'postal' => 'nullable|string',
'phone' => 'nullable|string',
'cni' => 'nullable|file',
'vitale' => 'nullable|file',
]);
$user = Auth::user();
$user->name = $request->name;
$user->firstname = $request->firstname;
$user->email = $request->email;
$user->address = $request->address;
$user->city = $request->city;
$user->postal = $request->postal;
$user->phone = $request->phone;
$user->vitale = $request->vitale;
$user->cni = $request->cni;
$image = $request->file('image');
if ($request->hasFile('image')) {
$fileName = $image->getClientOriginalName();
$fileExtension = $image->getClientOriginalExtension();
$image->move('users-photos', $fileName);
$user->image = 'users-photos/' . $fileName;
}
// unlink('users-photos/' . $fileName);
$cni = $request->file('cni');
if ($request->hasFile('cni')) {
$fileName = $cni->getClientOriginalName();
$fileExtension = $cni->getClientOriginalExtension();
$cni->move('users-cni', $fileName);
$user->cni = 'users-cni/' . $fileName;
}
$vitale = $request->file('vitale');
if ($request->hasFile('vitale')) {
$fileName = $vitale->getClientOriginalName();
$fileExtension = $vitale->getClientOriginalExtension();
$vitale->move('users-vitales', $fileName);
$user->vitale = 'users-vitales/' . $fileName;
}
if ($request['password'] != "") {
if (!(Hash::check($request['password'], Auth::user()->password))) {
return redirect()->back()->with('error', "Le mot de passe entré n'est pas valide ");
}
if (strcmp($request['password'], $request['new_password']) == 0) {
return redirect()->back()->with('error', "Le nouveau mot de passe doit être différent de l'ancien");
}
$validation = $request->validate([
'password' => 'required',
'new_password' => 'required|string|min:8|confirmed'
]);
$user->password = Hash::make($request['new_password']);
}
$user->save();
return redirect()->back()->with('success','Profil mis à jour');
}
}
我的刀片文件中的表格(故意减少):
@csrf
文件
CNI
cni)}“alt=”“width=“100%”
文件输入
社保卡
vitale)}“alt=”“width=“100%”
文件输入
梅特雷日
谢谢大家!
和平似乎您有多个名称属性。然后将
name=“cni”
更改为name=“cni[]”
同样适用于vitalthank you@sta,我现在得到这个错误调用数组上的成员函数getClientOriginalName()
感谢您的帮助!在您的请求中,哪个文件消失了?如果我上传了1个(不管是哪个),另一个文件消失了。如果你看屏幕截图,你会发现我先上传了Vitale,当我上传Cni时,Vitale不见了。我错过了一些东西,很奇怪!
<form action="{{ route('teacher.teacher.profileUpdate', $user) }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="tab-pane" id="docs" role="tabpanel">
<h4 class="font-w400 mb-5 mt-3">Documents</h4>
<div class="row">
<div class="col-md-4">
<div class="block">
<div class="block-header">
<h3 class="block-title">CNI</h3>
<div class="block-options">
<a href="{{ asset(Auth::user()->cni) }}" type="button" class="btn btn-sm btn-primary"
download="nom_de_fichier"> <i class="fas fa-download"></i> Télécharger</a>
</div>
</div>
<div class="block-content">
<img class="" src="{{ asset(Auth::user()->cni) }}" alt="" width="100%">
<div class="form-group">
<label class="d-block" for="cni">File Input</label>
<input type="file" id="cni" name="cni">
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="block">
<div class="block-header">
<h3 class="block-title">Carte Vitale</h3>
<div class="block-options">
<a href="{{ asset(Auth::user()->vitale) }}" type="button" class="btn btn-sm btn-primary"
download="nom_de_fichier">
<i class="fas fa-download"></i> Télécharger
</a>
</div>
</div>
<div class="block-content">
<img class="" src="{{ asset(Auth::user()->vitale) }}" alt="" width="100%">
<div class="form-group">
<label class="d-block" for="vitale">File Input</label>
<input type="file" id="vitale" name="vitale">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="form-group text-right">
<button type="submit" class="btn btn-alt-danger">
<i class="fas fa-save mr-1"></i> Mettre à jour
</button>
</div>