PHP foreach($ images为$ image)不上传图片

时间:2017-11-27 11:47:51

标签: php lumen

我正在尝试将多个图像上传到我的服务器,但它无法正常工作。它给我状态代码200,但它不会上传图像。

这就是我的所作所为:

if($request->hasFile('post_image')){
   $images = $request->post_image;
   $i = 0;
   foreach($images as $image){
           $i++;
           $filename = $post->id.'.'.$i.'jpg';
           $location = '/var/www/site/html/'.$post->id;
           $image->move($location, $filename);
    } 
 }

如果我删除foreach(),则上传图片但只上传一张。

为什么不上传它们?我做错了什么?

修改

这里也回答我自己的问题。问题是我的密钥" post_image"必须是" post_image[]"代替。

5 个答案:

答案 0 :(得分:0)

您忘记在文件名中添加{jpg'扩展名之前的.: 应该是这样的:

$filename = $post->id.'.'.$i.'.jpg';

答案 1 :(得分:0)

我正在尝试上传多张图片:

   if(!empty(Input::file('image'))){
    $files= Input::file('image');
    $destinationPath= 'images';
    $images=array(); 
   foreach($files as $file){
    $fullname= $file->getClientOriginalName(); 
    $hashname  = $fullname; 
    $upload_success   =$file->move($destinationPath, $hashname);
    $images[]=$fullname;
    $has= implode(",",$images);
      }

    $categories = new CategoryType;
    $categories->name = Input::get('name');
    $categories->image_attachment    =  $has;  
    $categories->save();
  }

答案 2 :(得分:0)

按照这个文件,您可以循环播放所有上传的文件

Get all files in a foreach loop in Laravel

喜欢$images = Input::file('post_image');

答案 3 :(得分:0)

问题在于我的密钥" post_image"必须是" post_image[]"代替。

答案 4 :(得分:0)

$file_ary = array();
        $file_count  = count($request->file('image') );
        $a=($request->file('image'));
        $finalArray=array();

        for ($i=0; $i<$file_count; $i++) {
                $fileName = time().$a[$i]->getClientOriginalName();
                $destinationPath = $request->input('path') ;
               $finalArray[$i]['image']=$destinationPath.$fileName;
                  $a[$i]->move($destinationPath,$fileName);

        }
       return json_encode($finalArray);