首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中实现多张图片的上传和插入

问如何在mysql中实现多张图片的上传和插入
EN

Stack Overflow用户
提问于 2019-02-02 22:02:21
回答 2查看 1.4K关注 0票数 0

我期待着从用户上传两个或更多的证书图像,并存储在mysql中。我该如何做到这一点…

这是我用来上传单个image...but的代码,我如何修改代码以允许存储两张图片

我的addstudent.php文件有

代码语言:javascript
复制
        <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包含

代码语言:javascript
复制
 <?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中添加一个或多个输入来上传图像。

EN

回答 2

Stack Overflow用户

发布于 2019-02-03 00:34:55

Html就像这样

代码语言:javascript
复制
<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>

在多行中插入数据

代码语言:javascript
复制
$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");
}

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

代码语言:javascript
复制
$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");
}
票数 1
EN

Stack Overflow用户

发布于 2019-02-03 00:21:50

向输入<input type="file" name="file" id="file" multiple required>添加multiple属性

将接收到的文件存储为json数组,因此您可能需要更改DB中的字段类型

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54493779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档