2014-10-13 70 views
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"); 
    } 
} 
?> 
+0

您插入到数据库应该for循环,在那里你处理上传的文件是英寸每次成功上传后 - 将数据添加到数据库 – Lixas

+0

@ user3750649我选择这种方式bcoz将有许多用户将上传图像在不同的类别下,并且每个类别都可以有多个图像,我希望将来存储路径bcoz我会有不同的条件下,用户将在不同的位置调用图像 – user3774056

+0

@ Lixas我曾尝试在for循环中插入查询,但它没有工作,只是输入空白值..你可以告诉我正确的方式 – user3774056

回答

2

$filepath变量,而query必须是在你的循环。

您还在使用mysql_query,它与mysqli_功能不兼容。

这两个API做不是混合在一起。在将数据库连接传递给它时使用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

我仍然无法在不同的行中存储图像的路径,只有图像的名称被存储,并且也在单行中 – user3774056

+0

[''This will explain it'](http://stackoverflow.com/questions/26333269/upload-multiple-images-and-store-their-path-in-database#comment41330504_26333269) –

+0

不客气;) –

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"); 
} 
相关问题