上传多个图像并将其路径存储在数据库中

时间:2014-10-13 05:13:27

标签: php mysql sql mysqli

我正在创建一个表单,用户可以通过该表单上传多个图像。当用户上传图像时,它们会存储在服务器的文件夹中。一切正常,直到这里,但是当我试图在数据库中保存图像的路径而不是路径时,两个图像的名称仅存储在一行中。我希望每个图像的路径都存储在不同的行中。

<form action="admin_insert_property_images.php" method="post" enctype="multipart/form-data">
    <div class="form-group">
        <label class="col-md-3 control-label">Upload Image:</label>
            <div class="col-md-8">
                <input type="file" id="file" name="support_images[]" multiple accept="image/*" />
            </div>
    </div>

    <div class="form-group">
        <label class="col-md-3 control-label"></label>
            <div class="submit">
                <input class="btn btn-primary" value="Save " type="submit" name="submit">
            </div>  
    </div>
</form>

admin_insert_property_images.php

<?php
$con=mysqli_connect("abc.com","abc","ab","abc");
// Check connection
if (mysqli_connect_errno()) 
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

if(isset($_POST['submit']))           
{
 extract($_POST);

    if(isset($_FILES['support_images']['name']))
    {
        $file_name_all="";
        for($i=0; $i<count($_FILES['support_images']['name']); $i++) 
        {
               $tmpFilePath = $_FILES['support_images']['tmp_name'][$i];    
               if ($tmpFilePath != "")
               {    
                   $path = "propertyimages/"; // create folder 
                   $name = $_FILES['support_images']['name'][$i];
                  $size = $_FILES['support_images']['size'][$i];

                   list($txt, $ext) = explode(".", $name);
                   $file= time().substr(str_replace(" ", "_", $txt), 0);
                   $info = pathinfo($file);
                   $filename = $file.".".$ext;
                   if(move_uploaded_file($_FILES['support_images']['tmp_name'][$i], $path.$filename)) 
                   { 
                      $file_name_all.=$filename."*";
                   }
             }
        }
        $filepath = rtrim($file_name_all, '*'); 
$query=mysqli_query($con,"INSERT into propertyimages (`propertyimage`) VALUES('".addslashes($filepath)."'); ");    
        }
        else
    {
        $filepath="";
    }

    if($query)
    {
       header("Location: admin_profile.php");
    }
}
?>

3 个答案:

答案 0 :(得分:2)

您的$filepath变量和query必须在您的循环中。

您还使用与mysql_query函数不兼容的mysqli_

这两个API将混合在一起。将DB连接传递给它时使用mysqli_query

<?php
$con=mysqli_connect("abc.com","abc","ab","abc");
// Check connection
if (mysqli_connect_errno()) 
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

if(isset($_POST['submit']))           
{
 extract($_POST);

    if(isset($_FILES['support_images']['name']))
    {
        $file_name_all="";
        for($i=0; $i<count($_FILES['support_images']['name']); $i++) 
        {
               $tmpFilePath = $_FILES['support_images']['tmp_name'][$i];    
               if ($tmpFilePath != "")
               {    
                   $path = "propertyimages/"; // create folder 
                   $name = $_FILES['support_images']['name'][$i];
                  $size = $_FILES['support_images']['size'][$i];

                   list($txt, $ext) = explode(".", $name);
                   $file= time().substr(str_replace(" ", "_", $txt), 0);
                   $info = pathinfo($file);
                   $filename = $file.".".$ext;
                   if(move_uploaded_file($_FILES['support_images']['tmp_name'][$i], $path.$filename)) 
                   { 
                      $file_name_all.=$filename."*";
                   }
             }
              $filepath = rtrim($file_name_all, '*').$path;    
         $query=mysqli_query($con,"INSERT into propertyimages (`propertyimage`) VALUES('".addslashes($filepath)."'); ");
        }

    }
    else
    {
        $filepath="";
    }

    if($query)
    {
       header("Location: admin_profile.php");
    }
}

答案 1 :(得分:0)

adminName

答案 2 :(得分:0)

  

Insert.php

if($_SERVER["REQUEST_METHOD"]=="POST"){

//$id=$_POST['id'];

$count= count($_FILES['files']['name']);
for ($i=0; $i <$count ; $i++) 
{ 
    $photo = $_FILES['files']['name'][$i];
    $target="uploads/".date('ydmhs').basename($photo);


    $query=$conn->query("INSERT INTO `images`(`photo`) VALUES ('$photo')");

      move_uploaded_file($_FILES["files"]["tmp_name"][$i], $target);

}