Php Laravel 6中未处理多个文件上载
我正在使用Laravel6编写一个API,在上传文件时遇到了一些问题,事实上,上传任何文件都有问题 我正在使用Postman测试API。在params部分,我输入一个名称,然后在body(表单数据)部分,输入keyPhp Laravel 6中未处理多个文件上载,php,laravel,Php,Laravel,我正在使用Laravel6编写一个API,在上传文件时遇到了一些问题,事实上,上传任何文件都有问题 我正在使用Postman测试API。在params部分,我输入一个名称,然后在body(表单数据)部分,输入keyfilename,然后附加一个文件 当我发送请求时,它会返回all good状态,但不会上载文件,也不会将详细信息保存到数据库中 另外,如果我没有附加图像文件,验证程序会返回所需的状态,但如果我将其更改为txt文件,它不会说任何话,并且返回的状态为all good状态,因此它似乎缺少文
filename
,然后附加一个文件
当我发送请求时,它会返回all good
状态,但不会上载文件,也不会将详细信息保存到数据库中
另外,如果我没有附加图像文件,验证程序会返回所需的状态,但如果我将其更改为txt文件,它不会说任何话,并且返回的状态为all good
状态,因此它似乎缺少文件名。*
部分,并且只运行第一个文件名
验证
namespace-App\Http\Controllers;
使用App\ImageUpload;
使用\Http\Request;
使用\Http\JsonResponse;
使用Illumb\Support\Facades\Validator;
类ImageUploadController扩展控制器
{
公共函数存储(Request$Request):JsonResponse
{
$validator=validator::make($request->all()[
“名称”=>“必需”,
“文件名”=>“必需”,
'filename.*'=>'图像| mimes:jpeg、png、jpg、gif、svg | max:2048'
]);
如果($validator->fails()){
return response()->json(['error validation failed'],400);
}
如果($request->hasFile('filename')){
foreach($request->file('filename')作为$image){
$fileName=time().。$image->getClientOriginalExtension();
$image->move(public_path()./uploads',$fileName);
$imageUpload=新建imageUpload();
$imageUpload->name=$request->name;
$imageUpload->filename=$filename
$imageUpload->save();
}
}
return response()->json(['All good'],200);
}
}
如果我dd($resposne)
在最上面,我试图上传的文件就在那里,见下面
+files: Symfony\Component\HttpFoundation\FileBag {#59
#parameters: array:1 [
"filename" => Symfony\Component\HttpFoundation\File\UploadedFile {#44
-test: false
-originalName: "23367298-7883819-image-m-101_1578974555854.jpg"
-mimeType: "image/jpeg"
-error: 0
path: "/tmp"
filename: "phpAJtgNw"
basename: "phpAJtgNw"
pathname: "/tmp/phpAJtgNw"
extension: ""
realPath: "/tmp/phpAJtgNw"
aTime: 2020-01-27 08:59:12
mTime: 2020-01-27 08:59:12
cTime: 2020-01-27 08:59:12
inode: 266560
size: 96981
perms: 0100600
owner: 1000
group: 1000
type: "file"
writable: true
readable: true
executable: false
file: true
dir: false
link: false
}
]
}
你的邮递员要求
filename[] (format type = file) = image1.jpg
filename[] (format type = file) = image2.jpg
filename[] (format type = file) = image3.jpg
检查您的
$request
是否有多个文件,以及是否以HTML格式filename[]
作为数组。@Webinion。。就在那里。。。我已经用回答更新了我的问题
filename[] (format type = file) = image1.jpg
filename[] (format type = file) = image2.jpg
filename[] (format type = file) = image3.jpg