我下面有這段代碼,問題是它沒有上傳文件,底部的回調函數沒有顯示結果。現在,在我輸入if isset($ _POST [fileImage'])...代碼和$_SESSION['fileImage']['name'] = $_FILES['fileImage']['name'];
之前,文件上傳得很完美。但是使用這兩段代碼,它已經停止了上傳。下面的isset()函數是否正確放置?
所以我相信問題是我上面使用的代碼已經放在了錯誤的地方。如何將下面的代碼正確放置在正確的位置以便上傳以重新開始工作?
下面是它想上傳的文件,但未能代碼:
<?php
$result = 0;
if (isset($_POST['fileImage']) && ((($_FILES["fileImage"]["type"] == "image/gif")
|| ($_FILES["fileImage"]["type"] == "image/jpeg")
|| ($_FILES["fileImage"]["type"] == "image/pjpeg")
|| ($_FILES["fileImage"]["type"] == "image/jpg")
|| ($_FILES["fileImage"]["type"] == "image/png")
|| ($_FILES["fileImage"]["type"] == "image/tif"))){
if(file_exists("ImageFiles/".$_FILES['fileImage']['name'])) {
$parts = explode(".",$_FILES['fileImage']['name']);
$ext = array_pop($parts);
$base = implode(".",$parts);
$n = 2;
while(file_exists("ImageFiles/".$base."_".$n.".".$ext)) $n++;
$_FILES['fileImage']['name'] = $base."_".$n.".".$ext;
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"ImageFiles/" . $_FILES["fileImage"]["name"]);
$result = 1;
}
else
{
move_uploaded_file($_FILES["fileImage"]["tmp_name"],
"ImageFiles/" . $_FILES["fileImage"]["name"]);
$result = 1;
}
?>
<script language="javascript" type="text/javascript">
window.top.stopImageUpload(<?php echo $result;?>);
</script>
<?php
}
$_SESSION['fileImage']['name'] = $_FILES['fileImage']['name'];
?>
只是提醒:$ _FILES [「文件」] [「類型」]是不安全的,以確定文件類型。這些信息由瀏覽器提供。您應該部署額外的檢查以確保它是一個映像或保護放置該文件的文件夾以防執行。 – bardiir 2012-04-22 18:03:32
我不能確定沒有看到你的表單,但我的猜測是'$ _POST ['fileImage']'沒有設置。我只是檢查'isset($ _ FILES ['fileimage'])'和$ _FILES ['fileimage'] ['error'] == 0'。如果你有一個文件輸入字段'fileimage',那麼'$ _POST ['fileimage']'不會被填充。只有'$ _FILES'。 – drew010 2012-04-22 18:07:06