【发布时间】:2023-03-13 07:00:01
【问题描述】:
有人可以帮忙吗,因为我想将多张图片上传到服务器,并将图片名称上传到数据库。
以下代码用于将图像上传到服务器:
查看:
<form action="<?php echo URLROOT; ?>/posts/add" method="post" enctype='multipart/form-data'>
<input type="file" name="file[]" multiple>
<input type="submit" name=submit value="Submit">
</form>
控制器:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// Count total files
$countfiles = count($_FILES['file']['name']);
// Looping all files
for($i=0;$i<$countfiles;$i++){
$filename = $_FILES['file']['name'][$i];
// Upload file
move_uploaded_file($_FILES['file']['tmp_name'][$i], dirname(__DIR__)."/img/".$filename);
}
} else {
// Load view with errors
$this->view('posts/add');
}
}
当使用以下代码和 3 个单独的输入时,我还可以上传 3 个图像名称:
查看:
<form action="<?php echo URLROOT; ?>/posts/add" method="post">
<input type="file" name="image1">
<input type="file" name="image2">
<input type="file" name="image3">
<input type="submit" name=submit value="Submit">
</form>
控制器:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// Sanitize POST array
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
$data = [
'user_id' => $_SESSION['user_id'],
'image1' => trim($_POST['image1']),
'image2' => trim($_POST['image2']),
'image3' => trim($_POST['image3']),
];
// Validated
if($this->postModel->addPost($data)){
flash('post_message', 'Post Added');
redirect('posts');
} else {
die('Something went wrong');
}
} else {
$data = [
'image1' => '',
'image2' => '',
'image3' => ''
];
$this->view('posts/add', $data);
}
}
有人可以建议我如何组合代码,以便使用单个文件输入将图像上传到服务器,以及将图像名称上传到数据库吗?
【问题讨论】:
-
你想要一个输入类型的文件在codeigniter中上传多张图片吗?
-
@KUMAR 谢谢你的回复。是的,我只想使用一个输入。对于多个图像。它适用于自定义 MVC 框架。
-
好的,请稍等。
-
现在请查看我的更新答案。
-
SO上有很多重复的,你试过吗?
标签: php html multiple-file-upload