Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Ajax和Laravel 5.6上传多幅图像_Php_Jquery_Ajax_Laravel_Image Uploading - Fatal编程技术网

Php 使用Ajax和Laravel 5.6上传多幅图像

Php 使用Ajax和Laravel 5.6上传多幅图像,php,jquery,ajax,laravel,image-uploading,Php,Jquery,Ajax,Laravel,Image Uploading,首先我要为我的英语道歉 第二,我不想使用任何插件 我想上传多个图像,我可以不用ajax,但我想用ajax上传。 我把代码放在这里了 <form action="{{route('image-upload.store')}}" method="post" enctype="multipart/form-data"> {{csrf_field()}} <input type="file" id="image-upload" name="image_upload[]" e

首先我要为我的英语道歉

第二,我不想使用任何插件

我想上传多个图像,我可以不用ajax,但我想用ajax上传。 我把代码放在这里了

<form action="{{route('image-upload.store')}}" method="post" enctype="multipart/form-data">
   {{csrf_field()}}
   <input type="file" id="image-upload" name="image_upload[]" enctype="multipart/form-data" multiple>  

  <button type="submit">save</button>
</form>                          
上面的代码只需在没有Ajax的情况下上传多个图像

这里是:

html:

 <input type="file" id="image-upload" name="image_upload[]" enctype="multipart/form-data" multiple>
现在,这段代码可以很好地工作,但只适用于一个图像。我知道我应该把它循环一下,我做了,但没有得到回应

如果有人能告诉我怎么做

以下是我的努力:

 if ($request->images) {
       $total=$request->TotalImages;
        $images = $request->images;
        for($j=0; $j<$total;$j++){
            $imagesName = $images->getClientOriginalName();
            $randonName = rand(1, 200);
            $images->move(public_path('/images/test'), $randonName . '.jpg');
        }
        return response()->json($randonName);
    }

  if ($request->images) {
        $images = $request->images;
        foreach ($images as $image) {
            $imagesName = $images->getClientOriginalName();
            $randonName = rand(1, 200);
            $image->move(public_path('/images/test'),$randonName . $imagesName . $randonName . '.jpg');
        }
    }
if($request->image){
$total=$request->TotalImages;
$images=$request->images;
对于($j=0;$jgetClientOriginalName();
$randonName=rand(1200);
$images->move(公共路径('/images/test'),$randonName.'.jpg');
}
return response()->json($randonName);
}
如果($request->images){
$images=$request->images;
foreach($images作为$image){
$imagesName=$images->getClientOriginalName();
$randonName=rand(1200);
$image->move(公共路径('/images/test'),$randonName.$imagesName.$randonName.'.jpg');
}
}

按如下方式更新您的代码:

for (let i = 0; i < TotalImages; i++) {
    image_upload.append('images', images.files[i]);
}
for(设i=0;i

for(设i=0;i

这将有助于您提交多个图像。

这也会起作用。这将发送一组图像,以便在控制器中轻松获取

        for (let i = 0; i < TotalImages; i++) {
            image_upload.append('images[]', images.files[i]);
        }
for(设i=0;i
对于这个$request->images变量,您得到的输出是什么?return response()->json($request->images);。输出是一个对象([object object]),您可以在您的问题中发布响应吗?谢谢,但我发现了问题。只需要替换这个简单的ajax代码:image\u upload.append('images[],images.files[i]);然后发布一个有助于他人的答案或删除此问题,如果您在迭代中添加+i…formdata将在名称文件前添加迭代次数…因此,images0…images1等…您将如何在服务器端阅读此内容?
 if ($request->images) {
       $total=$request->TotalImages;
        $images = $request->images;
        for($j=0; $j<$total;$j++){
            $imagesName = $images->getClientOriginalName();
            $randonName = rand(1, 200);
            $images->move(public_path('/images/test'), $randonName . '.jpg');
        }
        return response()->json($randonName);
    }

  if ($request->images) {
        $images = $request->images;
        foreach ($images as $image) {
            $imagesName = $images->getClientOriginalName();
            $randonName = rand(1, 200);
            $image->move(public_path('/images/test'),$randonName . $imagesName . $randonName . '.jpg');
        }
    }
for (let i = 0; i < TotalImages; i++) {
    image_upload.append('images', images.files[i]);
}
for (let i = 0; i < TotalImages; i++) {
    image_upload.append('images' + i, images.files[i]);
}
        for (let i = 0; i < TotalImages; i++) {
            image_upload.append('images[]', images.files[i]);
        }