Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 上载多个图像并将其路径存储在数据库中_Php_Mysql_Sql_Mysqli - Fatal编程技术网

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

Php 上载多个图像并将其路径存储在数据库中,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我正在制作一个表单,用户可以通过它上传多个图像。当用户上传图像时,它们会存储在服务器的文件夹中。在这里之前一切都正常,但当我试图在数据库中保存图像的路径时,这两个图像的名称只存储在一行中,而不是路径。我希望每个图像的路径应该存储在不同的行中 <form action="admin_insert_property_images.php" method="post" enctype="multipart/form-data"> <div class="form-group"

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

<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\u insert\u property\u 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");
    }
}
?>

您的
$filepath
变量和
查询必须在您的循环中

您还使用了与
mysqli\uquery
函数不兼容的
mysqli\uquery

这两个API不会混合在一起。使用
mysqli\u查询
,同时向其传递数据库连接

<?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");
    }
}
提取($\u POST);
如果(isset($_文件['images']['name']))
{
$file_name_all=“”;
对于($i=0;$i)
Insert.php

if($\u服务器[“请求\u方法”]=“发布”){
//$id=$_POST['id'];
$count=count($_文件['FILES']['name']);
对于($i=0;$i查询(“插入到`images`(`photo`)值(`photo')”);
移动上传的文件($文件[“文件”][“tmp文件名”][$i],$target);
}

您在数据库中的插入应该在for循环中,您在这里处理上载的文件。每次成功上载后,将记录添加到database@user3750649我选择这种方式bcoz将有许多用户将上传不同类别下的图像,每个类别可以有多个图像,我希望存储路径bcoz在未来的i w在不同的条件下,用户将在不同的服务器上调用图像locations@Lixas我曾尝试将insert查询放入for循环,但它不起作用,只输入了空白值。如果你认为这是最好的方法,请告诉我正确的方法。要实现你想要的,我会使用foreach loop/While循环上载多少文件,并分别运行每个上载/sql插入。根据您的服务器规格和使用要求,我还建议您使用和睡眠(1)为了便于使用,您将MySQL API与
MySQL\u query
混合使用,而不是与
mysqli\u
混合使用。我不知道我以前说过多少次。老实说,我不知道人们从哪里获得信息。我仍然无法将图像的路径存储在不同的行中,只存储了图像的名称,这是一个错误单曲中的lsorow@Arif_suhail_123谢谢你的建议。我犯了一个非常愚蠢的错误,我已经更正了我的代码,但是我仍然无法得到想要的结果result@Arif_suhail_123我也有同样的问题。图像的名称存储在一行中,而我希望它们的路径应该存储在单独的r中ows@Fred-ii-感谢您的帮助,但我仍然有相同的问题。我希望将图像路径存储在表的不同行中
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");
}
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);

}