我在创建一个PHP文件上传脚本的麻烦:错误上传文件thorugh PHP脚本
的index.php:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>File Upload</title>
</head>
<body>
<form method="post" action="upload_file.php" enctype="multipart/form-data">
<label for="file"><h3>File: </h3> </label>
<input type="file" name="file" id="file" /><br />
<input type="submit" name="Upload" />
</form>
</body>
</html>
upload_file.php:
<?php
$restricted_extensions = array("htm", "html", "php", "asp", "aspx", "js");
$file_extension = end(explode(".", $_FILES["file"]["name"]));
if ($_FILES["file"]["error"] > 0)
{
echo("<h2>An error occured!</h2>");
echo("<h2>Return Code: " . $_FILES["file"]["error"] . "</h2><br>");
}
elseif ($_FILES["file"]["error"] == 0)
{
$is_valid_extension = true;
foreach ($restricted_extension as $extension => $value)
{
if ($file_extension == $extension)
{
$is_valid_extension == false;
}
if (!$is_valid_extension)
{
echo("<h2>The files extension " . $file_extension . " is not allowed!</h2>");
}
}
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
}
?>
错误消息:
说明:未定义指数:文件在C:\的Inetpub \ wwwroot的\上线upload_file.php 3个
严格的标准:只有变量应该通过在C基准进行传递:\的Inetpub \ wwwroot的\上线upload_file.php 3
说明:未定义指数:文件在C:\的Inetpub \ wwwroot的\线upload_file.php 5
说明:未定义指数:文件在C:\的Inetpub \ wwwroot的\第10行
upload_file.php注意:未定义的变量:C:\ inetpub \ wwwroot \ upload_file.php中的restricted_extension第15行
警告:(c)中提供的foreach参数无效:\的Inetpub \ wwwroot的\ upload_file.php第15行
似乎upload_file.php中缺少一部分内容。请发布整个文件,看看问题出在哪里 [编辑]对不起 - 没有滚动;) – hannenz 2013-05-13 15:26:40
最后两个错误 - 你有一个错字(应该是restricted_extensions而不是restricted_extension)。另外,试着把'var_dump($ _ FILES);退出;'在upload_file.php开头,并显示您在尝试上传文件后得到的内容。 – 2013-05-13 15:34:41