2010-03-05 122 views
0

我發誓這個腳本昨晚工作得很好,但今天無法讓它工作。它並沒有進入foreach循環,但我不知道爲什麼。即使我選擇一個文件並單擊提交,$ _FILES數組也是null。PHP沒有進入foreach循環

基本上這個腳本有一個文件輸入標籤,並使用jQuery,如果用戶選擇一個文件,它會添加另一個文件輸入標籤。當點擊提交按鈕時,調用PHP。

<?php 
//used for firePHP 
include('PHP/FirePHPCore/fb.php'); 
ob_start(); 


$success = false; 
$error = ""; 
$allowable_types = array(
    'image/jpeg', 
    'image/pjpeg', 
    'image/jpg', 
    'image/jpe', 
    'image/gif', 
    'image/png' 
); 



################################################################# 
//NOT GETTING INSIDE THE FOREACH LOOP. $_FILES array is always null 
################################################################## 
//loops through the files that the user has chosen to be uploaded them and moves them to the Images/uploaded folder 
foreach($_FILES as $key => $value) { 
    if(!empty($_FILES[$key])) { 
     if($_FILES[$key]['error'] == 0) { 
      if(in_array($_FILES[$key]['type'], $allowable_types) && ($_FILES[$key]['size'] < 5000000)) { 
       if(!file_exists("Images/uploaded/".$_FILES[$key]['name'])) { 
        move_uploaded_file($_FILES[$key]['tmp_name'], "Images/uploaded/".$_FILES[$key]['name']); 
        $success = true; 
       } else { 
        $error = "<h3 class=\"bad\">At least one of the files already exists</h3>"; 
       } 
      } else { 
       $error = "<h3 class=\"bad\">At least one of the files you've selected is either too large or not the correct file type</h3>"; 
      } 
     } elseif($_FILES[$key]['error'] == 4) { 

     } else { 
      $error = "<h3 class=\"bad\">An error occurred while trying to upload one of the files</h3>"; 
     } 
    } else { 
     $error = "<h3 class=\"bad\">You need to select a file</h3>"; 
    } 
} 



?> 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<meta http-equiv="refresh" content="1205"> 
<link rel="stylesheet" type="text/css" href="CSS/reset.css" /> 
<link rel="stylesheet" type="text/css" href="CSS/uploadFile.css" /> 
<link rel="stylesheet" type="text/css" href="CSS/galleria.css" /> 
<script type="text/ecmascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="JS/galleria.jquery.js"></script> 

<script type="text/javascript"> 


    $(document).ready(function() { 

     var i = 1; 

     //gives the first li the class .active so that it shows the large version as if it's been clicked. 
     //-- used for the gallery page 
     $('#content ul.gallery li:first-child').addClass('active'); 

     //fades the links on hover -- used for the nav links 
     $('#header ul li a').hover(function() { 
      $(this).fadeTo(300, 0.3); 
     },function() { 
      $(this).fadeTo(300, 1); 
     }); 



      $('input:file:last').live('change',function() { 
       var file = $(this).val(); 
       if(file !== null && file !== "") { 
        if(i < 6) { 
         $(this).after("<input type=\"file\" name=\"uploadedFile"+i+"\" value=\"\" />"); 
         i++; 
        } 
       } 
      }); 
    }); 
</script> 
<meta name="keywords" content="Steph Mcclisch Photography Portfolio Pictures" /> 
<title>Steph McClish Photography</title> 
</head> 

<body> 
<div id="floater"></div> 
<div id="wrapper"> 

    <div id="content"> 
     <?php 
     if($success) { 
     echo "<h3 class=\"good\">Files Uploaded Successfully!</h3>"; 
     } elseif ($error) { 
     echo $error; 
     } 
    ?> 
     <h4>Choose the files to be uploaded</h4> 
     <form action="<?php $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data"> 
      <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> 
      <input type="file" name="uploadedFile0" value="" /> 
      <button type="submit" name="login">Submit</button> 
     </form> 
     <h5><a href="PHP/Manage.php">Manage Files/Folders</a></h5> 
    </div> 


</div> 
</body> 
</html> 

回答

1

這一切都與我的Wamp服務器設置有關。在菜單欄中的wamp圖標上,我進入了php> php設置>文件上傳。只需點擊一次,就可以修復所有問題。

+0

接受這個答案是正確的,如果這是解決方案。 – 2010-03-05 05:56:13

+0

你不能接受你自己的答案2天。 – Catfish 2010-03-05 15:18:22

1

在Windows XP SP2上,Explorer有時無法上傳沒有擴展名的文件。

$ _FILES數組在這種情況下爲null。微軟表示其安全功能(!)

我們唯一能解決的問題就是強制上傳的文件有擴展名。