2012-01-23 5 views
-7

나는이 간단한 PHP 파일 업로드 스크립트를 테스트했습니다. 코드 내부에 정의 된 IE를 제외한 모든 브라우저 :(에서 작품 "지원 FILETYPE NOT"파일 업로드가 IE에서 작동하지 않습니다

IE 인쇄 :

if (isset($_POST['add'])) { 

    $order = $_POST['display_order']; 
    $img = $HTTP_POST_FILES['imagefile']['name']; 
    $url = $_POST['url']; 

    // CONNECT TO DB 
    mysql_connect(localhost,$username,$password); 
    @mysql_select_db($database) or die("Unable to select database"); 


    $types = array('image/jpeg', 'image/gif', 'image/png', 'image/tiff', 'image/bmp', 'image/pjpeg'); 
    $target_path = "media/"; 
    $target_path = $target_path . basename($_FILES['imagefile']['name']); 

    if (in_array($_FILES['imagefile']['type'], $types)) { 

    if(move_uploaded_file($_FILES['imagefile']['tmp_name'], $target_path)) { 

     mysql_query(
     "INSERT INTO slider_luxury 
      (display_order, imagefile, url) 
     VALUES 
      ('$order', '$img', '$url')" 
    ); 

     header('Location: luxury_slider.php'); 

    } else { 

     echo "There was an error uploading the slide, please try again!"; 

    } 

    } else { 

    echo "FILETYPE NOT SUPPORTED"; 

    } 

} 
+0

그래서 디버그 문을 추가 참조 실패 어떤 조건을 찾아 비교 : 무엇을 기대하고 시도하는 것은 허용되는 값의 배열에 추가 할 수 있습니다. IE를 사용하여 다른 것을 사용할 때 그 조건에 대한 입력. – Quentin

+0

시도 var_dump ($ _ 파일); 무엇을 얻을 수 있는지 확인하십시오. –

+0

이 데이터로 실제로 무엇을하고 있습니까? 당신은 아마 모든 이미지 타입을 받아 들일 수 있기 때문에'strtolower (substr ($ _ FILES [ 'imagefile'] [ 'type']), 0,6)) == 'image /''를 체크 할 수 있습니다. 브라우저에서 보낸 MIME 유형에 의존하는 것은 문제를 묻는 것입니다. 실제로는 쉽게 스푸핑 될 수 있으므로 아무 것도 말하지 않습니다. 또한 브라우저는 파일 확장자를 사용하여이를 크게 생성합니다.이 확장은 다시 신뢰할 수 없습니다. 이미지가 유효한지 확인하려면 [GD] (http://php.net/manual/en/book.image.php)와 같은 것을 사용해야합니다. – DaveRandom

답변

관련 문제