繁体   English   中英

使用PDO添加多个文件

[英]Adding multiple files with PDO

我在名为gallery.php的页面中有一个表单,代码如下:

<form action="upload_image.php" method="POST" class="form-horizontal" enctype="multipart/form-data">
    <div class="form-group">
        <div class="col-md-12">
            <div align="center"><a href="#" class="btn btn-default" id="image_alt"><span class="glyphicon glyphicon-ok"></span> &nbspSeleziona immagini</a></div>
            <input id="image" name="files[]" type="file" multiple="multiple" required="required" style="margin-left:50%;" class="btn btn-default">
        </div>
    </div>
    <div class="form-group">
        <label class="col-md-4 control-label" for="btn_add_img"></label>
        <div class="col-md-12">
            <div align="center">
                <button id="btn_add_img" name="btn_add_img" class="btn btn-primary">Carica</button>
            </div>
        </div>
    </div>
</form>

接下来,我将使用以下代码创建一个名为upload_image.php的页面:

<?php
session_start();
$where = dirname(__FILE__);
include($where . "/config/db.php");
$categoria_img = '1';
$id_album = '1';

// Loop $_FILES to exeicute all files
foreach ($_FILES as $file) {   
    $nome_file_temporaneo = $file["tmp_name"];
    $nome_file_vero = $file["name"];
    $tipo_file = $file["type"];
    for($i=0;$i<sizeof($tipo_file);$i++) {
        echo "<br>Nome:" . $nome_file_temporaneo[$i]."<br>";
        $dati_file = file_get_contents($nome_file_temporaneo[$i]);
        $query = "INSERT INTO images (category_id,image_big,image_type,id_album) values (:categoria_img,:data,:img_type,:id_album)";
        echo "<br>".$query;
        $stmt = $dbh->prepare($query);

        $stmt->bindParam(":categoria_img", $categoria_img, PDO::PARAM_INT);
        $stmt->bindParam(":data", $dati_file, PDO::PARAM_STR);
        $stmt->bindParam(":img_type", $tipo_file[$i],PDO::PARAM_STR);
        $stmt->bindParam(":id_album", $id_album, PDO::PARAM_INT);

        $stmt->execute();
    }
}
?>

问题是upload_image.php没有显示任何错误..并且在gallery.php页面中的表单传递文件后,任何内容都存储在数据库中。有人可以帮助我吗?

UPDATE

致命错误:消息为“ SQLSTATE [HY093]”的未捕获异常“ PDOException”: C:\\ xampp \\ htdocs \\ castellazzo_theme \\ PHP Version \\ upload_image.php:31堆栈中的无效参数号:绑定变量数与令牌数不匹配跟踪:#0 C:\\ xampp \\ htdocs \\ castellazzo_theme \\ PHP Version \\ upload_image.php(31):PDOStatement-> execute()#1 {main}抛出于C:\\ xampp \\ htdocs \\ castellazzo_theme \\ PHP Version \\ upload_image。第31行的php

$stmt->bindParam(":data", $dati_file, PDO::PARAM_STR);

应该

$stmt->bindParam(":data", $dati_file, PDO::PARAM_LOB);

手册

但是您应该存储图像的位置,而不是存储Blob。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM