2017-04-01 128 views
0

我已经得到了下列输入字段:遍历多个字段名

<input name="file1" type="file"> 
<input name="file2" type="file"> 
<input name="files[]" type="file" multiple> 

我试图找出最好的方法来检查该字段的上面是不是空的,并执行一些动作DB那些有文件的人。

我可以检查他们每个人一个手动这样的,但我不知道是否有更好的方法来做到这一点:在所有的文件

if(!empty($_FILES['file1']['name']) { 
    // Perform checks/etc for file1 
} 

if(!empty($_FILES['file2']['name']) { 
    // Perform checks/etc for file2 
} 

if(!empty($_FILES['files']['name'][0]) { 
    // Loop the array, perform checks/etc for each one 
} 
+0

什么意思是“最好”和“更好”?有没有一种客观的衡量标准可以量化?主要基于观点的答案产生的问题通常在StackOverflow中不被接受,这就是我要问的原因。 –

+0

@LouisLangholtz我正在努力使它尽可能地整齐。所以基本上少了一些线条,更简洁的代码,并且不会一遍又一遍地重复大量相同的代码。像OOP一样? – Bill

回答

0

这将循环,并告诉你哪些是空的,将包含内容的文件放入$ submittedFiles数组中。

$submittedFiles = []; 
foreach ($_FILES as $n => $f) { 
     if (!empty($f['name']) && !empty($f['name'][0])) { 
       $submittedFiles[] = $f; 
     } else { 
       echo $n.' is empty'; 
     } 
} 
var_dump($submittedFiles); 
+0

事情是前2个文件不是多个,所以他们每个都有一个文件,然后最后一个有多个选项可用。 – Bill