2011-09-20 2 views
3

나는이 양식이 있습니다PHP 업로드 입력 배열 및 얼마나 많은 파일을 찾는 방법?

<form enctype="multipart/form-data" action="upload.php" method="POST"> 
    <input type="file" name="photo[]" /> 
    <input type="file" name="photo[]" /> 
</form> 

를 그리고 PHP로 이런 식으로 파일을 업로드 :

function upFiles($files){ 
    for($i = 0 ; $i < $files ; $i++){ 
     $FV_filename = $_FILES['photo']['name'][$i]; 
     $fileTYPE = substr($FV_filename , -4); 
     move_uploaded_file($_FILES['photo']['tmp_name'][$i], uniqid().$fileTYPE); 
    } 
} 

upFiles($_POST['howManyFiles']); 

당신은 내가 많은 파일이 전송 된 방법을 클라이언트 측에서 얻을 볼 수 있듯이. 내가 원하는 것은 얼마나 많은 파일이 수신되었는지 서버 측에서 확인하는 것입니다. 어떻게하면됩니까? php 함수가 내장되어 있지 않습니까?

답변

3
count($_FILES['photo']['name']); 

. 또한, 단지 foreachfor 루프를 다시 작성 :

foreach ($_FILES as $name => $file) { 
    var_dump($file); 
    // process file... 
} 
+0

수는 세부 사항? $ name과 $ file이 무엇입니까? –

+0

'$ name'은 입력 이름이고'$ file'은 name, tmp_name, etcetara를 포함하는 배열입니다. 'var_dump()'를 사용하여 변수에 무엇이 있는지 찾을 수 있습니다. 방법을 보여주기 위해 예제를 업데이트했습니다. – Rijk

+0

감사합니다, 많이 도와 줬어! –

0

당신은과 같이, 파일이 is_uploaded_file에 업로드되었는지 여부를 확인할 수 있습니다 :

function upFiles($files){ 
    for($i = 0 ; $i < $files ; $i++){ 
     if (is_uploaded_file($_FILES['photo']['tmp_name'][$i])) { 
      // uploaded file 
     } 
    } 
} 

당신은 모든 업로드를 통해 루프 foreach를 사용할 수 있습니다 사진 대신 매직 넘버을 사용하십시오. $ _FILES 배열을 통해 php.net

+0

'$ _FILES [ 'photo'] [ 'error'] [$ i] === UPLOAD_ERR_OK'을 확인하는 것이 더 쉽습니다. –

0

으로 반복 :에서

foreach 문에 대한

function upFiles($baseVarName){ 

    foreach($_FILES[ $baseVarName ] as $fileDetails) { 

     $FV_filename = $fileDetails['name'][$i]; 
     $fileTYPE = substr($FV_filename , -4); 
     move_uploaded_file($fileDetails['tmp_name'][$i], uniqid().$fileTYPE); 

    } 

} 

upFiles('photo');