Php 使用PDO上载动态文件数
编辑 我正在尝试从动态HTML表单上载多个文件Php 使用PDO上载动态文件数,php,pdo,Php,Pdo,编辑 我正在尝试从动态HTML表单上载多个文件 可以向表单添加图像输入,如下所示: <button onclick="addImage()">Add Image</button> 添加图像 随附的添加图像的函数: 函数addImage(){ $(“表格”)。追加(‘删除’); } 当我单击表单的上载按钮时,不会抛出任何错误,但文件不会出现在数据库或图像文件夹中 以下是PHP PDO为实现这一目标所做的尝试: //SQL Statement $statementI
可以向表单添加图像输入,如下所示:
<button onclick="addImage()">Add Image</button>
添加图像
随附的添加图像的
函数
:
函数addImage(){
$(“表格”)。追加(‘删除’);
}
当我单击表单的上载按钮时,不会抛出任何错误,但文件不会出现在数据库或图像文件夹中
以下是PHP PDO为实现这一目标所做的尝试:
//SQL Statement
$statementImage = $db->prepare("INSERT INTO table (date, title, image) value (:date, :title, :image)");
//if an image is prepared for upload
if(isset($_FILES['image']['name'])) {
//if no image was attached to upload input
foreach($_FILES['image']['error'] as $err){
switch ($err){
case UPLOAD_ERR_NO_FILE:
echo 'No file sent.';
exit;
}
}
//check for correct extension
for($x=0; $x<count($_FILES['image']['tmp_name']); $x++){
$file_name = $_FILES['image']['name'][$x];
$file_tmp = $_FILES['image']['tmp_name'][$x];
$t = explode(".", $file_name);
$t1 = end($t);
$file_ext = strtolower(end($t));
$ext_check = array("jpg", "jpeg", "png", "gif", "svg");
//move file to folder
if(in_array($file_ext, $ext_check)){
$filer = $file_tmp;
$filepath = "images/" . $file_name;
move_uploaded_file($filer, $filepath);
//SQL statement
$statementImage->execute(['date' => $date, 'title' => $title, 'image' => $file_name]);
} else{
echo "Only images can be stored.";
}
}
}
}
//SQL语句
$statementImage=$db->prepare(“插入表(日期、标题、图像)值(:日期、标题、图像)”);
//如果已准备好上载图像
如果(isset($\u文件['image']['name'])){
//如果没有图像附加到上载输入
foreach($\u文件['image']['error']作为$err){
交换机($err){
案例上载\u错误\u否\u文件:
回显“未发送文件”;
出口
}
}
//检查分机是否正确
对于($x=0;$xexecute(['date'=>$date,'title'=>$title,'image'=>$file\u name]);
}否则{
echo“只能存储图像。”;
}
}
}
}
我有点想知道
如果(isset($\u FILES['image']['name']){
是询问文件是否已附加到输入的正确方法。你不能像这样检查如果(isset($\u FILES['image']['name'])
字段名是一个数组。您需要遍历图像[]进行检查
field我认为这是一个问题。这样的东西的正确语法是什么?是否需要将其包装在一个foreach
语句中以查看每个可能的图像?是否只想检查条件正确?是的,我只想检查文件是否已添加到文件输入中
//SQL Statement
$statementImage = $db->prepare("INSERT INTO table (date, title, image) value (:date, :title, :image)");
//if an image is prepared for upload
if(isset($_FILES['image']['name'])) {
//if no image was attached to upload input
foreach($_FILES['image']['error'] as $err){
switch ($err){
case UPLOAD_ERR_NO_FILE:
echo 'No file sent.';
exit;
}
}
//check for correct extension
for($x=0; $x<count($_FILES['image']['tmp_name']); $x++){
$file_name = $_FILES['image']['name'][$x];
$file_tmp = $_FILES['image']['tmp_name'][$x];
$t = explode(".", $file_name);
$t1 = end($t);
$file_ext = strtolower(end($t));
$ext_check = array("jpg", "jpeg", "png", "gif", "svg");
//move file to folder
if(in_array($file_ext, $ext_check)){
$filer = $file_tmp;
$filepath = "images/" . $file_name;
move_uploaded_file($filer, $filepath);
//SQL statement
$statementImage->execute(['date' => $date, 'title' => $title, 'image' => $file_name]);
} else{
echo "Only images can be stored.";
}
}
}
}