我发誓这个剧本昨晚工作正常,但今天无法上班。它不会进入foreach循环,我不知道为什么。即使我选择了一个文件并单击“提交”,$ _FILES数组也为null。
基本上这个脚本有一个文件输入标签并使用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>
答案 0 :(得分:1)
这一切都与我的Wamp服务器设置有关。在菜单栏中的wamp图标我去了php&gt; php setting&gt;文件上传。只需点击一次即可修复所有内容。
答案 1 :(得分:1)
在Windows XP,SP2上,资源管理器有时无法上传没有扩展名的文件。
在这种情况下,$ _ FILES数组为空。微软称其为安全功能(!)
我们可以提出的唯一解决方案是强制上传文件以获得扩展名。