猿问

文件输入多文件选择不起作用

当我死/转储 $files 时,当我期望看到所有选定的文件时,我只能看到请求中的一个文件。当我在 foreach 循环中死亡/转储 $name 时,什么也没有发生。我需要查看请求中所有选定的图像。


刀片创建

<form action="/p" enctype="multipart/form-data" method="post" files = "true"> 

@csrf

<label for="image" class="col-md-4 col-form-label text-md-right">{{ __(' post image') }}</label>


                        <input type="file", class="form-control-file" id ="image" multiple = "multiple" name="image">

                        @error('image')

                                <div class="invalid-feedback" role="alert">

                                    <strong>{{ $message }}</strong> </div>

                                

                            @enderror

 

</form>

后置控制器

 public function store( Request $request )

{` $request->request->add(['user_id' => $user],  ); // Here a request is given a varible either for the admin or user

    $data = request()->validate([

        'user_id' => 'required',

        'about' => 'required',

        'category' => '',

        'expire_date' => '',

        


    ]); `if (Auth::guard('web')->check())

     {

       $user = Auth::user();

       $post = new Post();


       /*$post = $user->posts()->create([

            'about' => $data['about'],

            'category' => $data['category'],

            'expire_date' => $data['expire_date'],

            

        ]);*/

        if($request->hasFile('image'))

        {

          $files = $request->file('image');

          

          

          foreach($files as $file)

          {

            

            $name = time().'-'.$file->getClientOriginalName();

            $name = str_replace('','-',$name);

            

            $file->move('images',$name);

            

            //$post->images->create(['image' => $name ]);


          }

        } `

        $user = Auth::guard('web')->id() ;


       // return redirect()->route('home',['user'=>$user]);


        

    }



  }


呼唤远方
浏览 107回答 2
2回答

交互式爱情

对于多个输入,在 html 中,您需要将其作为name 属性的数组传递。更改name="image"为name=image[],即:<input&nbsp;type="text"&nbsp;name="image[]"&nbsp;/>这样 php 将收到一个图像数组。

慕哥9229398

模型上的 $casts 属性提供了一种将属性转换为常见数据类型的便捷方法。$casts 属性应该是一个数组,其中键是要转换的属性的名称,值是您希望将列转换为的类型。namespace App;use Illuminate\Database\Eloquent\Model;class Post extends Model{&nbsp; &nbsp; &nbsp;protected $casts = [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'image'&nbsp; =>&nbsp; 'array',&nbsp; &nbsp; &nbsp;];&nbsp;}
随时随地看视频慕课网APP
我要回答