首页 > 解决方案 > 如何上传多个图像并插入同一行mysql

问题描述

我期待着从用户上传两个或更多证书图像并连续存储在 mysql 中。我该怎么做...

这是我用来上传单个图像的代码......但是我如何修改代码以允许存储两个图像

我的addstudent.php 文件有

        <span>Name : </span><input type="text" style="width:265px; height:30px;"  name="name" Required /><br>
<span>Cover Letter:</span><input type="file" name="file" id="file"  required ><br><br>

我的 SaveStudent.php 包含

 <?php
session_start();
include('../connect.php');
$a = $_POST['name'];

 // query

  $file_name  = strtolower($_FILES['file']['name']);
  $file_ext = substr($file_name, strrpos($file_name, '.'));
  $prefix = 'your_site_name_'.md5(time()*rand(1, 9999));
  $file_name_new = $prefix.$file_ext;
  $path = '../uploads/'.$file_name_new;


/* check if the file uploaded successfully */
if(@move_uploaded_file($_FILES['file']['tmp_name'], $path)) {

 //do your write to the database filename and other details   
$sql = "INSERT INTO student (name,file) VALUES (:a,h)";
$q = $db->prepare($sql);
$q->execute(array(':a'=>$a,':h'=>$file_name_new));
header("location: students.php");

}
?>

现在如何在addstudent.php 和savestudent.php 中添加一个或多个输入来上传图片。

标签: phpmysql

解决方案


HTML 就像

<span>Name : </span><input type="text" style="width:265px; height:30px;"  name="name" required /><br>
<span>Cover Letter:</span><input type="file" name="file[]" id="file" multiple="" required ><br><br>

在多行中插入数据

$a = $_POST['name'];
$sql = "INSERT INTO student (name) VALUES (:a)";
$q = $db->prepare($sql);
$q->execute(array(':a'=>$a));
$id = $q->lastInsertId();

if(count($_FILES)){
    foreach ($_FILES['file']['name'] as $key => $fname) {
        $file_name  = strtolower($fname);
        $file_ext = substr($file_name, strrpos($file_name, '.'));
        $prefix = 'your_site_name_'.md5(time()*rand(1, 9999));
        $file_name_new = $prefix.$file_ext;
        $path = '../uploads/'.$file_name_new;
        if(@move_uploaded_file($_FILES['file']['tmp_name'][$key], $path)) {
            $sql = "INSERT INTO student_cert (student_id,file) VALUES (:id,h)";
            $q = $db->prepare($sql);
            $q->execute(array(':id'=>$id,':h'=>$file_name_new));
        }
    }            
    header("location: students.php");
}

在单行中插入数据(逗号分隔)

$a = $_POST['name'];
if(count($_FILES)){
    $file_arr = [];
    foreach ($_FILES['file']['name'] as $key => $fname) {
        $file_name  = strtolower($fname);
        $file_ext = substr($file_name, strrpos($file_name, '.'));
        $prefix = 'your_site_name_'.md5(time()*rand(1, 9999));
        $file_name_new = $prefix.$file_ext;
        $path = '../uploads/'.$file_name_new;
        if(@move_uploaded_file($_FILES['file']['tmp_name'][$key] , $path)) {
            $file_arr[] = $file_name_new;
        }
    }

    if(count($file_arr)) {
        $file_str = implode(', ', $file_arr);
        $sql = "INSERT INTO student (name,file) VALUES (:a,h)";
        $q = $db->prepare($sql);
        $q->execute(array(':a'=>$a,':h'=>$file_str));
    }         
    header("location: students.php");
}

推荐阅读