2012-01-23 87 views
-7

我剛剛測試了這個簡單的php文件上傳腳本。除了IE所有瀏覽器:(作品文件上傳在IE無法正常工作

IE打印 「FILETYPE NOT SUPPORTED」 爲內部代碼中定義:

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($ _ FILES);並看看你得到了什麼 –

+0

你對這些數據究竟在做什麼?你可能會接受所有的圖像類型,所以你可以檢查一下'strtolower(substr(ltrim($ _ FILES ['imagefile'] ['type']),0,6))=='image /'',但即使如此依賴於瀏覽器發送的MIME類型正在尋求麻煩 - 它並沒有告訴你任何事情,因爲它很容易被欺騙。此外,瀏覽器將在很大程度上從文件擴展名中產生,而這又不能被依賴。如果你真的想檢查圖像是否有效,你必須使用[GD](http://php.net/manual/en/book.image.php)。 – DaveRandom

回答