我的SQL表中有十列:id,imgid,urlid,image1,image2,image3,image4,image5和comment。 Id,imgid和urlid是int类型。图像[1-5]是中等类型。网址和评论是文字类型。 Imgid是上传的图片数量(最大值应为5),urlid是提交的网址数量(现在应该是1),url保存网址,注释保存用户评论。
表单首先询问用户要上传的图像数量(我的脚本中最大数量为5)。例如,如果用户选择3,则应使用新的提交按钮创建3个文件上载字段。名为$ imgid的变量将存储数字3,即用户想要上传的文件数。然后,用户选择3个图像并单击新创建的提交按钮,将三个图像提交到SQL表的前三个图像列中。我的问题是,当我点击第一个单击第一个提交按钮后出现时,我收到此错误:
Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in dbpform2.php on line 75
这是我到目前为止所做的:
<html>
<body>
<form action="dbpform2.php" method="POST">
How many images do you want to upload?<br>
<input type="text" name="imgid" /><br />
<input type="submit" name="submit" value="submit" />
</form>
<?php
mysql_connect ("","","") or die(mysql_error());
mysql_select_db ("") or die(mysql_error());
$imgid = $_POST['imgid'];
if (isset($_POST['submit']))
{
echo"<form action='dbpform2.php' method='POST' enctype='multipart/form-data'>
";
if ($imgid >= 5)
{
for ($i=1; $i<= 5; $i++)
{
${'img' . $i} = "img".$i;
echo "<input type='file' name='${'img' . $i}' /> <br />";
}
echo"
<input type='hidden' name='imgid' value='$imgid' />
<input type='submit' name='submit2' value='submit2' />
</form>";
}
if ($imgid <= 5)
{
for ($i=1; $i<=$imgid; $i++)
{
${'img' . $i} = "img".$i;
echo "<input type='file' name='${'img' . $i}' /> <br />";
}
echo"
<input type='hidden' name='imgid' value='$imgid' />
<input type='submit' name='submit2' value='submit2' />
</form>";
}
}
?>
<?php
$imgid = $_POST['imgid'];
for ($i=1; $i <= $imgid; $i++)
{
${'img' . $i} = "img".$i;
${'file' . $i} = $_FILES['${'.img.' . $i}']['tmp_name'];
}
if (isset($_POST['submit2']))
{
for ($i=1; $i<=$imgid; $i++)
{
${'img' . $i} = "img".$i;
${'file' . $i} = addslashes(file_get_contents ($_FILES['${'.img.' . $i}']['tmp_name']));
}
mysql_query ("INSERT INTO dbp VALUES ('','$imgid','$urlid','$url', '$file1', '$file2','$file3','$file4','$file5','$comment')");
}
?>
</body>
</html>
答案 0 :(得分:1)
$_FILES['${'.img.' . $i}']
替换为
$_FILES[${'img' . $i}]
使用IDE编辑脚本,以避免这种愚蠢的错误。试试NetBeans,PhpStorm 并尝试阅读MVC。