-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";
}
}
所以添加調試語句找出什麼條件比較失敗。當你使用IE瀏覽器到你正在使用其他東西時,該條件的輸入。 – Quentin
嘗試做var_dump($ _ FILES);並看看你得到了什麼 –
你對這些數據究竟在做什麼?你可能會接受所有的圖像類型,所以你可以檢查一下'strtolower(substr(ltrim($ _ FILES ['imagefile'] ['type']),0,6))=='image /'',但即使如此依賴於瀏覽器發送的MIME類型正在尋求麻煩 - 它並沒有告訴你任何事情,因爲它很容易被欺騙。此外,瀏覽器將在很大程度上從文件擴展名中產生,而這又不能被依賴。如果你真的想檢查圖像是否有效,你必須使用[GD](http://php.net/manual/en/book.image.php)。 – DaveRandom