2010-03-05 54 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。微软表示其安全功能(!)

我们唯一能解决的问题就是强制上传的文件有扩展名。