我创建了一个名为creativemedia的数据库,其中包含两个表(图像和用户信息)。我正在尝试创建一个用户上传图像并在同一页面上查看图像的页面。用户应该能够一次插入一个图像。我遇到的问题是,在插入1个图像后,我无法提交第二个图像,因为它只是回显了一个内置的错误消息。这是我用来发送图像的所有代码:
页面顶部:
<?php
session_start();
if(!$_SESSION['username'] AND (!$_SESSION['user_id'])) {
header("location: index.php");
}
?>
主体:
<?php
mysql_connect("localhost","root","");
mysql_select_db("creativemedia");
if(isset($_POST['Upload'])) {
$allowedExts = array("jpeg", "jpg", "png", "JPG");
$temp = explode(".", $_FILES["image"]["name"]);
$extension = end($temp);
if ((($_FILES["image"]["type"] == "image/jpeg")
|| ($_FILES["image"]["type"] == "image/JPG")
|| ($_FILES["image"]["type"] == "image/jpg")
|| ($_FILES["image"]["type"] == "image/png"))
&& ($_FILES["image"]["size"] < 500000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["image"]["error"] > 0)
{
echo "Return Code: " . $_FILES["image"]["error"] . "<br>";
}
else
{
if (file_exists("Images Upload/" . $_FILES["image"]["name"]))
{
echo "<script>alert('This file already exists, please insert a different image')</script>";
}
else
{
if(move_uploaded_file($_FILES["image"]["tmp_name"], "Images Upload/" . $_FILES["image"]["name"])){
$target= "Images Upload/".$_FILES["image"]["name"];
$sessionid= $_SESSION['user_id'];
$query= "insert into images(UserID, Image) values('$sessionid','$target')";
if(mysql_query($query)){
echo"<script>alert('Upload Successful!')</script>";
}
else{echo "this isn't sending the information";}
}
else{echo "this isn't working";}
}
}
}
else
{
echo"<script>alert('Please select an image!')</script>";
}
}
?>
答案 0 :(得分:0)
确保在html代码中输入文件名'image'之后的[]。使用for循环提交每个图像。希望这会有所帮助。
答案 1 :(得分:0)
以下是多文件上传时要记住的主要事项。你知道他们中的大部分,可以通过识别你的代码错过的地方。
enctype是必须的
[]是必须的
对于循环或foreach循环提交一个图像,请注意在发布代码后添加$ i。
for($ i = 0; $ i&lt; count($ _ FILES ['image'] ['name']); $ i ++){
//你的mime类型代码等。
$ target =“图片上传/".$_文件[”图片“] [”名称“] [$ i];
//插入查询
}
上传图片不是必须的。我不确定在您的代码中是否有任何特定的理由使用它们。