首页 文章

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

提问于
浏览
2

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

<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");
    }
}
?>

2 回答

  • 2

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

    您还使用 mysql_query ,它与 mysqli_ 函数不兼容 .

    这两个API混合在一起 not . 将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");
        }
    }
    
  • 0
    extract($_POST);
    
    if(isset($_FILES['images']['name']))
    {
        $file_name_all="";
        for($i=0; $i<count($_FILES['images']['name']); $i++) 
        {
            $tmpFilePath = $_FILES['images']['tmp_name'][$i];    
            if ($tmpFilePath != "")
            {    
               $path = "photos/"; // create folder 
               $name = $_FILES['images']['name'][$i];
               $size = $_FILES['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['images']['tmp_name'][$i], $path.$filename)) 
               { 
                  $file_name_all.=$filename."*";
               }
           }
           $file="photos/" . $filename ;
           mysql_query("insert into gallery(image) values('".$file."')") or die(mysql_error());  
        }
    }
    else
    {
        $filepath="";
    }
    
    if($query)
    {
       header("Location: admin_profile.php");
    }
    

相关问题