2012-01-13 2 views
-1

은 내가 특별히 $key => $tmp_name 다음 코드에서 무엇을하고 있는지 이해하려고 노력 해요 : 모든 이름,

if(isset($_FILES['files'])) 
{ 
    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name) 
    { 
     echo $_FILES['files']['name'][$key], "\n"; 
     move_uploaded_file($tmp_name, 'img/'.$_FILES['files']['name'][$key]); 
    } 
} 
+0

'tmp_name'이 배열이 될 것으로 기대하지만, 동일한 키에 둘 이상의 파일이 업로드되면 PHP는 배열을 다시 구성합니다. –

+0

다중 파일 업로드 스크립트입니까? 즉 파일 요소 이름은 name = "files []"와 같을 것이고 $ _FILES는 데이터 배열 –

+1

-1을 포함 할 것입니다. [foreach] (http://php.net/manual/en/control- structures.foreach.php) 그리고 이것들이 [배열]의 유일한 유형이기 때문에 [연관 배열] (http://en.wikipedia.org/wiki/Associative_array)을 살펴보아야합니다. http://php.net/manual/en/language.types.array.php) PHP에서 찾을 수 있습니다. –

답변

2

이것은 여러 필드가 업로드 양식이있는 경우 당신이 당신의 값에 액세스하는 방법입니다 files[] 또는 files[x]x 숫자이다

예 HTML :

혼란스러운 것은 상기 전송 된 값들이 인덱스 그룹화하지 것을
<input type="file" name="files[]" /> // first field 
<input type="file" name="files[]" /> // ... 
<input type="file" name="files[]" /> // ... 

먼트 유토피아 (error, tmp_name 등).

편집 : 편집 내용에 따르면 일반적으로 foreacharrays을 읽는 것이 좋습니다.

관련 문제