PHP上传多个图像并插入数据库

PHP上传多个图像并插入数据库,php,Php,我希望用户能够上传多个图像。有没有办法在数据库中的一个字段下存储3幅图像的路径?我的意思是所有的图像路径都在同一列中,就像这样 Images | date images/file1.jpg, images/file2.jpg, image

我希望用户能够上传多个图像。有没有办法在数据库中的一个字段下存储3幅图像的路径?我的意思是所有的图像路径都在同一列中,就像这样

Images                                                     | date                                                                               
images/file1.jpg, images/file2.jpg, images/file3.jpg       | Thursday...

<ul id="image_upload">
    &lt;input type="file" name="image[]"&gt;&lt;a href="#" id="add_more">Add more</a> <br>
     [removed]
      $(document).ready(function(){
       $('#add_more').click(function(){
        var current_count = $('input[type="file"]').length;
        var next_count = current_count + 1;
        $('#image_upload').append('<br>&lt;input type="file" name="image[' + next_count + ']"&gt;&lt;br>');
       });
      });



    </ul> <br><br>

这段代码只会将第一个图像上传到temp文件夹,并且只将一个路径上传到数据库中

如果您只想存储路径,我将查看和。它们用于创建可存储的数据表示形式

如果您只想存储路径,我将查看和。它们用于创建可存储的数据表示形式

如果您只想存储路径,我将查看和。它们用于创建可存储的数据表示形式

如果您只想存储路径,我将查看和。它们用于创建可存储的数据表示形式

一次上载所有图像:
if (!empty($_FILES['image'])){  
  for ($i = 0; isset($_FILES['image']['name'][$i]); $i++) {
   $allowed = array('jpg', 'jpeg', 'png', 'bmp', 'tiff', 'gif');
   $fileName = $_FILES['image']['name'][$i];
   $fileSize = $_FILES['image']['size'][$i];
   $fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));

   if (!in_array($fileExt, $allowed)) {
    $errors[] = 'Incorrect file type. Only allowed: ' . implode(', ', $allowed) . '';
   }
   if ($fileSize > 2097152) {
    $errors[] = "$fileName exceeds the maximum file size of 2 MB";
   }
  }

  for ($i = 0; isset($_FILES['image']['name'][$i]); $i++) {
   $fileBase = basename($_FILES['image']['name'][$i]);
   $fileName = pathinfo($fileBase, PATHINFO_FILENAME);
   $fileExt = pathinfo($fileBase, PATHINFO_EXTENSION);
   $fileTmp = $_FILES['image']['tmp_name'][$i];
   $fileDst = 'images/images/'.basename($_FILES['image']['name'][$i]);
   for ($j = 0; file_exists($fileDst); $j++) {
    $fileDst = "images/images/$fileName-$j.$fileExt";
   }
   if (move_uploaded_file($fileTmp, $fileDst)) {
    $output[$fileBase] = "Stored $fileBase OK";
   } 
  }
 }

foreach($\u文件['multiple\u uploaded\u FILES']['name']作为$file)
{
打印(文件);
//使用move_uploaded_file()在服务器目录中移动文件。
//激发一个插入查询,该查询插入所有具有逗号分隔值的文件名
}
如果希望用户单独上载图像,请逐个上载:

foreach($\u文件['uploaded\u file']['name']作为$file)
{
打印(文件);
//使用move_uploaded_file()在服务器目录中移动文件。
//激发一个插入查询,该查询插入所有具有逗号分隔值的文件名
}
一次上载所有图像:

foreach($\u文件['multiple\u uploaded\u FILES']['name']作为$file)
{
打印(文件);
//使用move_uploaded_file()在服务器目录中移动文件。
//激发一个插入查询,该查询插入所有具有逗号分隔值的文件名
}
如果希望用户单独上载图像,请逐个上载:

foreach($\u文件['uploaded\u file']['name']作为$file)
{
打印(文件);
//使用move_uploaded_file()在服务器目录中移动文件。
//激发一个插入查询,该查询插入所有具有逗号分隔值的文件名
}
一次上载所有图像:

foreach($\u文件['multiple\u uploaded\u FILES']['name']作为$file)
{
打印(文件);
//使用move_uploaded_file()在服务器目录中移动文件。
//激发一个插入查询,该查询插入所有具有逗号分隔值的文件名
}
如果希望用户单独上载图像,请逐个上载:

foreach($\u文件['uploaded\u file']['name']作为$file)
{
打印(文件);
//使用move_uploaded_file()在服务器目录中移动文件。
//激发一个插入查询,该查询插入所有具有逗号分隔值的文件名
}
一次上载所有图像:

foreach($\u文件['multiple\u uploaded\u FILES']['name']作为$file)
{
打印(文件);
//使用move_uploaded_file()在服务器目录中移动文件。
//激发一个插入查询,该查询插入所有具有逗号分隔值的文件名
}
如果希望用户单独上载图像,请逐个上载:

foreach($\u文件['uploaded\u file']['name']作为$file)
{
打印(文件);
//使用move_uploaded_file()在服务器目录中移动文件。
//激发一个插入查询,该查询插入所有具有逗号分隔值的文件名
}

您只需从动态文件元素中删除索引,如下所示:

$(document).ready(function(){
    $('#add_more').click(function(){
        $('#image_upload').append('<br><input type="file" name="image[]" />');
    });
});
$(文档).ready(函数(){
$(“#添加更多”)。单击(函数(){
$(“#图像上传”)。追加(“
”); }); });

不需要提供索引。只需提供一个数组符号
[]
。这里的问题是,第一个动态文件的索引为2。因此,文件数组索引变为0、2、3等,因此循环将无法正确迭代。

您只需从动态文件元素中删除索引,如下所示:

$(document).ready(function(){
    $('#add_more').click(function(){
        $('#image_upload').append('<br><input type="file" name="image[]" />');
    });
});
$(文档).ready(函数(){
$(“#添加更多”)。单击(函数(){
$(“#图像上传”)。追加(“
”); }); });

不需要提供索引。只需提供一个数组符号
[]
。这里的问题是,第一个动态文件的索引为2。因此,文件数组索引变为0、2、3等,因此循环将无法正确迭代。

您只需从动态文件元素中删除索引,如下所示:

$(document).ready(function(){
    $('#add_more').click(function(){
        $('#image_upload').append('<br><input type="file" name="image[]" />');
    });
});
$(文档).ready(函数(){
$(“#添加更多”)。单击(函数(){
$(“#图像上传”)。追加(“
”); }); });

不需要提供索引。只需提供一个数组符号
[]
。这里的问题是,第一个动态文件的索引为2。因此,文件数组索引变为0、2、3等,因此循环将无法正确迭代。

您只需从动态文件元素中删除索引,如下所示:

$(document).ready(function(){
    $('#add_more').click(function(){
        $('#image_upload').append('<br><input type="file" name="image[]" />');
    });
});
$(文档).ready(函数(){
$(“#添加更多”)。单击(函数(){
$(“#图像上传”)。追加(“
”); }); });
不需要提供索引。只需提供一个数组符号
[]
。这里的问题是,第一个动态文件的索引为2。因此,文件数组索引变为0、2、3等,因此循环将无法正确迭代

有没有办法在数据库中的一个字段下存储3幅图像的路径

至少有3种方法可以做到这一点:

  • PHP数组,然后将其保存到数据库中,然后选择

  • 将它们保存为带有分隔符的字符串(例如:path1 | | path2 | | pathX)。内爆和爆炸函数会有所帮助

  • 如果您使用的是PostgreSQL,则可以使用数组数据类型。因此,您将能够在SQL中操作它们(计数,cha