在Codeigniter中,可以通过以下步骤将多张图片上传并保存到数据库:
enctype
属性设置为multipart/form-data
,以支持文件上传。do_upload()
方法来处理上传的图片文件。可以使用$this->upload->data()
方法获取上传文件的信息,如文件名、路径等。$this->db->insert()
方法来执行插入操作。下面是一个示例代码:
// 在视图页面中的表单
<form method="post" action="upload/save_images" enctype="multipart/form-data">
<input type="file" name="images[]" multiple>
<input type="submit" value="上传">
</form>
// 在控制器中的上传和保存操作
public function save_images() {
// 加载上传库和数据库库
$this->load->library('upload');
$this->load->database();
// 配置上传库
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 2048; // 限制文件大小为2MB
$this->upload->initialize($config);
// 处理上传的图片文件
if ($this->upload->do_upload('images')) {
$upload_data = $this->upload->data();
// 获取上传文件的信息
$file_name = $upload_data['file_name'];
$file_path = $upload_data['full_path'];
// 将图片信息保存到数据库
$data = array(
'file_name' => $file_name,
'file_path' => $file_path
);
$this->db->insert('images', $data);
// 可以根据需要执行其他操作,如生成缩略图等
// 重定向到成功页面
redirect('upload/success');
} else {
// 处理上传错误
$error = $this->upload->display_errors();
// 可以根据需要执行其他错误处理操作
// 重定向到错误页面
redirect('upload/error');
}
}
在上述示例中,upload/save_images
是表单提交的目标URL,./uploads/
是上传文件保存的路径,images
是表单中文件输入字段的名称,images[]
表示可以上传多个文件。在数据库中,可以创建一个名为images
的表,包含file_name
和file_path
字段来保存上传的图片信息。
请注意,上述示例仅涵盖了将图片上传并保存到数据库的基本步骤,实际应用中可能需要根据具体需求进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云