2017-04-01 116 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