2012-12-18 3 views
-1

내 서버에 여러 개의 이미지를 업로드하려고하는데 다음 이미지는 하나의 이미지를 업로드하는 경우에만 사용할 수 있습니다.여러 이미지 업로드 PHP, 루프?

3 개의 이미지를 전송하는 POST 양식이 있는데, 다음 이미지는 첫 번째 이미지 만 업로드하므로 각 이미지에 대해 while 루프를 만들어야합니까?

지금까지 필자가 작성

...

$allowedExts = array("jpg", "jpeg", "gif", "png"); 
$extension = end(explode(".", $_FILES["file"]["name"])); 
if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/png") 
|| ($_FILES["file"]["type"] == "image/pjpeg")) 
&& ($_FILES["file"]["size"] < 20000) 
&& in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; 

    if (file_exists("upload/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "upload/" . date('U')."-".$_FILES["file"]["name"]); // add a unique string to the uploaded filename so that it is unique. 
     echo "Stored in: " . "upload/" . date('U')."-".$_FILES["file"]["name"]; 
     } 
    } 
    } 
else 
    { 
    echo "Invalid file"; 

} 

아무도 볼 수있는 메신저 잘못된 것?

+0

** **이 스크립트를 사용하지 마십시오. 여러 가지 심각한 "제 서버를 장악하십시오"라는 취약점이 있습니다. –

+0

@MarcB 자세히 설명하는 것이 도움이 될 것입니다! – Mansfield

+0

MIME 형식에 의존하는 것은 위험 할 수 있습니다. 하이브리드 파일 (헤더 부분은 식별을 처리하고 파일의 나머지 부분은 악의적 인 파일입니다)을 만들어 스푸핑하기 쉽기 때문입니다. MarcB를 정교하게 신경 써야합니까? – brezanac

답변

0

당신이 당신의 스크립트를 사용하려는 경우 당신이 그것을 할 수 있습니다

for($i = 0; $i < 3; $i++) { 
$aFile = $_FILES['file'][$i]; 

// your code ($_FILES['file']['tmp_name'] should be addressed like $aFile['tmp_name'] and so on.. 
} 
+0

죄송합니다. @Ben, 내 괄호 사이에 코드를 넣으시겠습니까? – Liam

+0

예,'$ _FILES' 배열을 반복합니다. 요청 당 하나의 파일을 업로드 할 때'$ _FILES [ 'dom_name'] [ 'name']'로 주소를 지정할 수 있습니다. 여러 파일을 업로드 할 때'$ _FILES [ 'dom_name'] [0] [ ' name ']','$ _FILES ['dom_name '] [1] ['name ']'등등. – Ben