2010-11-19 10 views
-1
<?php 
if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpg") 
|| ($_FILES["file"]["type"] == "image/pjpeg")) 
&& ($_FILES["file"]["size"] < 30000)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    } 
    else 
    { 
    echo "Looks Great!"; 

    if (file_exists("localhost/upload/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "localhost/upload/" . $_FILES["file"]["name"]); 
     echo "Stored in: " . "localhost/upload/" . $_FILES["file"]["name"]; 
     } 
    } 
    } 
else 
    { 
    echo "Something went wrong."; 
    } 
?> 

upload.php는 upload라는 폴더에 이미지 파일 (jpg)을 업로드하는 데 사용하는 upload.php입니다. 나는 다른 곳에서 파일을 선택하고 업로드를 누르면 ... upload.php로 리다이렉트되며 "뭔가 잘못되었다"와 같은 메시지가 항상 나타납니다. 나는 심지어 png 파일을 .. 시도했습니다. 도와 드릴까요?이미지 파일을 업로드하는 중 이상한 오류가 발생했습니다.

+0

으로 이러한 이상한 질문을 대체 할 수있는, 당신은 단지'4 conditions'을 중단하고 조건 부산물을 테스트한다 조건? – ajreal

+0

png의 경우 "image/png"를 추가해야합니다. –

+0

아마도'var_dump ($ _ FILES);'가 도움이 될 수 있습니다. –

답변

1

코드는 W3Schools (http://www.w3schools.com/php/php_php_file_upload.asp)와 거의 동일하므로 해당 사이트로 돌아가서 코드를 다시 가져 오십시오. 또한 PNG 벌금을 사용하면 초기 if..else 문에 표시되지 않으므로 초기 유효성 검사를 통과하지 못합니다.

  • 양식은 HTML 페이지의 '파일'의 이름으로 적절한 파일 업로드 요소가 포함되어 있습니까 : 여기 어떻게 할 것인지

    코드 디버깅을 통해 단계입니까?

  • 파일 크기가 30kb 미만입니까?
  • 이미지 유형이 gif 또는 jpg입니까?
  • 이미지가 $_FILES 개체에 전달되고 있습니까? $_FILES에서 print_r을 수행하십시오.
  • 서버의 임시 디렉토리에 이미지를 저장할 수있는 권한이 있습니까?

행운을 비네.

+0

정말 고마워요. 좋은 대답. – Jack

+0

다른 도움이 필요하다 ... 파일을 성공적으로 업로드한다고하면 어떻게 PHP를 사용하여 파일을 다시 가져올 수 있습니까? – Jack

+0

링크 나 기타 간단한 코드를 알려주시겠습니까? 감사합니다 – Jack

0

내기가 enctype = "multipart/form-data"속성이 누락 된 양식이됩니다.

약간의 스타일링 팁, 당신은

if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpg") 
|| ($_FILES["file"]["type"] == "image/pjpeg")) 
&& ($_FILES["file"]["size"] < 30000)) 

if(in_array($_FILES["file"]["type"], 
      array("image/gif", 
        "image/jpg", 
        "image/pjpeg")) && 
    $_FILES["file"]["size"] < 30000) 
관련 문제