Php 使用Ajax和Laravel 5.6上传多幅图像
首先我要为我的英语道歉 第二,我不想使用任何插件 我想上传多个图像,我可以不用ajax,但我想用ajax上传。 我把代码放在这里了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
<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]);
}