【发布时间】:2014-03-22 08:59:21
【问题描述】:
所以我在 for 循环中有这个表单,它提交给自己并获取用户上传的图像,表单代码:
for ($x=1; $x<=10; $x++)
{
echo "<form method='post' enctype='multipart/form-data'>";
echo "
<label for='file'>Image:</label>
<input type='file' name='file'><br>
<input type='submit' name='submit' value='Upload Image'>
<br>";
include ('lib/upload.php');
}
然后表单将调用一个名为“upload.php”的脚本,其中包含以下代码:
<?php
if (isset($_POST['submit']))
{
$allowedext=array("gif", "png", "jpeg", "jpg");
$tmp=explode(".", $_FILES["file"]["name"]);
$ext=end($tmp);
if (
(($_FILES["file"]["type"]=="image/gif") ||
($_FILES["file"]["type"]=="image/jpeg") ||
($_FILES["file"]["type"]=="image/jpg") ||
($_FILES["file"]["type"]=="image/pjpeg") ||
($_FILES["file"]["type"]=="image/png") ||
($_FILES["file"]["type"]=="image/x-png")) &&
($_FILES["file"]["size"]<=3145728) && in_array($ext, $allowedext)
)
{
if ($_FILES["file"]["error"]>0)
{
echo "<br>Error: ".$_FILES["file"]["error"]."<br>";
}
else
{
if (file_exists("upload/".$_FILES["file"]["name"]))
{
echo "<br><p style='color: #ff0000;'>".$_FILES["file"]["name"]." already exists.</p><br>";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$_FILES["file"]["name"]);
$x="upload/".$_FILES["file"]["name"];
echo "<br><img src='$x' width='320px' height='240px'><br>";
}
}
}
else if ($_FILES["file"]["size"]>3145728)
{
echo "<br><p style='color: #ff0000;'>File too large</p><br>";
}
else
{
echo "<br><p style='color:#ff0000;'>Invalid file</p><br>";
}
}
?>
所以我的问题是,每次我上传图片时,都会出现“无效文件”错误,即使我很确定我上传了一个有效文件。如果我循环表单一次,这将起作用,如下所示:
for ($x=1; $x<=1; $x++)
{
\\code
}
任何想法可能是什么问题?
【问题讨论】:
标签: php html image loops upload