2011-07-15 41 views
1

我想統計設置的文件上傳。這是我使用的代碼。有沒有更好的方法來做到這一點。謝謝。PHP文件上傳計數集文件

<form action="index.php" method="post" enctype="multipart/form-data"> 
    <input name="new_image[]" type="file" /> 
    <input name="new_image[]" type="file" /> 
    <input name="new_image[]" type="file" /> 
    <input name="new_image[]" type="file" /> 
    <input name="new_image[]" type="file" /> 
<button name="submit" type="submit">Upload</button> 
</form> 
<?php 

$img_error = '0'; 
$fill_img_count = '0'; 
if(isset($_POST['submit'])) 
{ 
    $img_count = count($_FILES['new_image']); 
    echo "Total : ".$img_count."<br>"; 
    for ($i=0 ; $i<=$img_count ; $i++) 
    { 
     if (isset($_FILES['new_image']) && !empty($_FILES['new_image']['name'][$i])) 
     { 
      $fill_img_count++; 
     } 
    } 
    echo "Set : ".$fill_img_count."<br>"; 
} 
?> 

回答

0

你不需要有name="new_image[]"作爲名字...只是new_image就足夠了。如果您發佈1或多個,在PHP端,你會看到$ _FILES []

你一些有用的鏈接:

一些代碼:

if (empty($_FILES)) { echo "0 files uploaded"; } 
    else { echo count($_FILES) . " files uploaded"; } 

編輯基於評論:

從該職位:

echo count($_FILES['file']['tmp_name']); 
+0

這個代碼的情況下,空文件中的字段不能被髮送這是一件好事OP是明確地尋求避免。 – brezanac

0
<?php 
$count = 0; 
foreach($_FILES['new_image']['error'] as $status){ 
    if($status === UPLOAD_ERR_OK) { 
     $count++; 
    } 
} 
var_dump($count); 
?> 
<form action="test.php" method="post" enctype="multipart/form-data"> 
    <input name="new_image[]" type="file" /> 
    <input name="new_image[]" type="file" /> 
    <input name="new_image[]" type="file" /> 
    <input name="new_image[]" type="file" /> 
    <input name="new_image[]" type="file" /> 
<button name="submit" type="submit">Upload</button> 
</form> 
2
$count_files = 0; 
foreach ($_FILES['picture']['error'] as $item) { 
    if ($item != 4) { 
     $count_files++; 
    } 
} 
echo $count_files;