【发布时间】:2016-10-30 20:26:59
【问题描述】:
如何在循环内对多个文件使用 Laravel 文件验证?
通常在单个文件验证中,我可以这样做
$validator = Validator::make($request->all(),[
'image' => 'image|max_width:1000|max_height:1000'
]);
if($validator->fails()){
//validation fails
}
但现在我想在一个进程中验证多个文件,比如
//store to a variable
$file = $request->file('image');
if($file){ //if request file image exist
foreach($request->file('image') as $i){
//here, validate each file image, but it just I don't know how
}
}
现在前端,详细说一下在一篇文章中发送多个文件的过程。
$(document).on("change",'input[type="file"]',function(){
if($(this).val()!==""){
var files = this.files;
handleFileUpload(files);
$(this).val("");
}
});
function handleFileUpload(files)
{
//create a formData
var fd = new FormData();
//loop through e
for (var i = 0; i < files.length; i++)
{
//append each file object to the formData
fd.append('image[]', files[i]);
}
//this function is where ajax request will be process
sendFileToServer(fd);
}
如果我在后端转储请求,我会得到这些
array(2) { [0]=> object(Illuminate\Http\UploadedFile)#214 (7) { ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 布尔(假) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 字符串(50)“12400457_643171672489204_2452820305362127031_n.jpg” ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 字符串(10)“图像/JPEG” ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 整数(18413) ["错误":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) ["pathName":"SplFileInfo":private]=> 字符串(25) "C:\wamp64\tmp\phpBAE4.tmp" ["文件名":"SplFileInfo":private]=> 字符串(11)“phpBAE4.tmp”}[1]=> object(Illuminate\Http\UploadedFile)#217 (7) { ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 布尔(假) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 字符串(39)“13296200_702501119889592_55691535_n.jpg” ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 字符串(10)“图像/JPEG” ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> 整数(95383) ["错误":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) ["pathName":"SplFileInfo":private]=> 字符串(25) "C:\wamp64\tmp\phpBAE5.tmp" ["文件名":"SplFileInfo":private]=> 字符串(11)“phpBAE5.tmp”}}
关于如何在循环内的多个文件上使用 Laravel 文件验证的任何想法、线索和帮助?
PS:我在 Laravel 5.2 上运行
【问题讨论】:
标签: php laravel laravel-5.2