在laravel 中调用成员函数getClientOriginalExtension()?

par*_*eep 4 php laravel-5

尝试在 Laravel 中上传多个文件,所以我的查看代码是

<input type="file" name="photos">
Run Code Online (Sandbox Code Playgroud)

但我面临这个问题无法准确输入..?

   $img = $request->file('photos');
  $fileExtension=$img->getClientOriginalExtension();
Run Code Online (Sandbox Code Playgroud)

kun*_*nal 6

如果您要发布单个图像。你试试这个代码:-

if($request->hasFile('photos')){
if (Input::file('photos')->isValid()) {
    $file = Input::file('photos');
    $destination = 'images/Foldername'.'/';
    $ext= $file->getClientOriginalExtension();
    $mainFilename = str_random(6).date('h-i-s');
    $file->move($destination, $mainFilename.".".$ext);
    echo "uploaded successfully";
}
}
Run Code Online (Sandbox Code Playgroud)

确保您已在表单中添加了 enctype:-

<form action="" method="post" enctype="multipart/form-data">
 <input type="file" name="photos">
 </form>
Run Code Online (Sandbox Code Playgroud)

如果您要上传多张图片。试试这个代码:-

if ($request->hasFile('photos')) {
$files = $request->file('photos');
foreach($files as $file){
    $filename = $file->getClientOriginalName();
    $extension = $file->getClientOriginalExtension();
    $fileName = str_random(5)."-".date('his')."-".str_random(3).".".$extension;
    $destinationPath = 'images/Foldername'.'/';
    $file->move($destinationPath, $fileName);
}
}
Run Code Online (Sandbox Code Playgroud)

并且形式必须如下所示:-

<form action="" method="post" enctype="multipart/form-data">
 <input type="file" name="photos[]" multiple>
 </form>
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!