让用户在会话期间发送多张图片

时间:2014-03-15 17:30:28

标签: php session

我创建了一个名为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>";
          }
        }
        ?> 

2 个答案:

答案 0 :(得分:0)

确保在html代码中输入文件名'image'之后的[]。使用for循环提交每个图像。希望这会有所帮助。

答案 1 :(得分:0)

以下是多文件上传时要记住的主要事项。你知道他们中的大部分,可以通过识别你的代码错过的地方。

  1. enctype是必须的

  2. []是必须的

  3. 对于循环或foreach循环提交一个图像,请注意在发布代码后添加$ i。

    for($ i = 0; $ i&lt; count($ _ FILES ['image'] ['name']); $ i ++){

    //你的mime类型代码等。

    $ target =“图片上传/".$_文件[”图片“] [”名称“] [$ i];

    //插入查询

    }

  4. 上传图片不是必须的。我不确定在您的代码中是否有任何特定的理由使用它们。