[英]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>  Seleziona 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.