php - 使用单个输入上传多个图像时,Codeigniter 验证不起作用
问题描述
我正在尝试使用单个输入在 codeigniter 中上传多个图像,它工作正常,但我也想在这个输入字段上添加 codeigniter 验证,但它不起作用。这是我的html代码,
<input type="file" name="images[]" id="file" multiple="">
这是我的codeigniter代码,
if (empty($_FILES['images']['name']))
{
$this->form_validation->set_rules('images', 'Item Image', 'required');
}
谁能告诉我为什么当我尝试在 codeigniter 中将图像名称更改为图像 [] 时此验证不起作用,那么这将始终表示需要图像而不是选择图像。
解决方案
使用回调自己创建验证函数:
public function index()
{
$this->load->helper('file');
$this->load->library('form_validation');
if($this->input->post('submit'))
{
$this->form_validation->set_rules('file', '', 'callback_file_check');
if($this->form_validation->run() == TRUE)
{
// Upload
}
}
$this->load->view('upload');
}
public function file_check($str)
{
$allowed_mime_type_arr = array('image/gif','image/jpeg','image/png');
$mime = get_mime_by_extension($_FILES['file']['name']);
if(isset($_FILES['file']['name']) && $_FILES['file']['name']!="")
{
if(in_array($mime, $allowed_mime_type_arr))
{
return TRUE;
}
else
{
$this->form_validation->set_message('file_check', 'Please select only gif/jpg/png file.');
return FALSE;
}
}
else
{
$this->form_validation->set_message('file_check', 'Please choose a file to upload.');
return FALSE;
}
}
推荐阅读
- python - 为每个项目重复相同的用户输入 - python
- vba - 设置 objBAPIControl = CreateObject("SAP.Functions")
- docker - 如何知道 docker 容器中的哪些数据能够正确地将其映射为卷
- forms - TYPO3 表单扩展 - 整理者在 YAML 中创建多个条目
- ruby - 具有固定限制的并行 HTTP 请求的正确输出
- android - 将GMT转换为CET时区android
- arrays - 如何使用数组对唯一数据进行分组
- swiftui - 动态文本字体 SwiftUI
- jvm - JVM 上的 Quarkus 会出现内存不足的情况吗?
- tensorflow - 字节缓冲区的大小和形状不匹配(以前没有回答)