Php 多类型后积垢
我想用php创建具有多个部分和数据类型的表单。例如: 输入文本(名称、标题、说明等) 输入图像(标题\图像) 输入多个图像(滑块) 重点是我想用php在一个页面中创建大量数据,包括上传文件。 在post方法中,我尝试使用标准逻辑,使用if-else逻辑逐个上传图像,使用大量if-else逻辑和不同的名称,并将其插入数据库的每个字段(一字段数据库中的一个字段)huft 对于编辑,我手动尝试,与post方法相同,对每个字段使用if-else。例如:Php 多类型后积垢,php,Php,我想用php创建具有多个部分和数据类型的表单。例如: 输入文本(名称、标题、说明等) 输入图像(标题\图像) 输入多个图像(滑块) 重点是我想用php在一个页面中创建大量数据,包括上传文件。 在post方法中,我尝试使用标准逻辑,使用if-else逻辑逐个上传图像,使用大量if-else逻辑和不同的名称,并将其插入数据库的每个字段(一字段数据库中的一个字段)huft 对于编辑,我手动尝试,与post方法相同,对每个字段使用if-else。例如: if($_FILES['imghead']['si
if($_FILES['imghead']['size']!=0){
// run upload method
}
if($_FILES['slider1']['size']!=0){
// run upload method
}
if($_FILES['slider2']['size']!=0){
// run upload method
}
if($_FILES['slider3']['size']!=0){
// run upload method
}
// etc
但问题是,我认为我的方法不是很好,它不是很有效,我必须写很多代码,并用if-else逻辑逐一检查它们
我的问题:
你知道如何将我的逻辑优化为真正简单的代码吗?特别是积垢
我尝试过grocerycrud,但我需要更多功能,如多图像上传有一种方法可以使用grocerycrud实现多图像上传,在控制器中,您需要为所需的每个上载字段指定一个不同的名称方法,然后只需将main方法复制粘贴到credge_CRUD.php文件中,并将名称更改为您指定的名称 控制器代码:
$crud->set_field_upload('file1','assets/uploads');
$crud->set_another_field_upload('file2','assets/uploads');
这是您需要复制的代码,(路径:htdocs\app\u name\application\libraries\groundry\u CRUD.php)
只需将其粘贴到下面,并使用控制器中指定的相同名称更改函数名:
public function set_another_field_upload($field_name, $upload_dir = '')
{
$upload_dir = !empty($upload_dir) && substr($upload_dir,-1,1) == '/'
? substr($upload_dir,0,-1)
: $upload_dir;
$upload_dir = !empty($upload_dir) ? $upload_dir : 'assets/uploads/files';
/** Check if the upload Url folder exists. If not then throw an exception **/
if (!is_dir(FCPATH.$upload_dir)) {
throw new Exception("It seems that the folder \"".FCPATH.$upload_dir."\" for the field name
\"".$field_name."\" doesn't exists. Please create the folder and try again.");
}
$this->upload_fields[$field_name] = (object) array(
'field_name' => $field_name,
'upload_path' => $upload_dir,
'encrypted_field_name' => $this->_unique_field_name($field_name));
return $this;
}
实际上,您可以在表单中使用slider[]而不是slider1,2,3,然后可以使用foreach($_FILES['slider']作为$fileInfo){…}
public function set_field_upload($field_name, $upload_dir = '')
{
$upload_dir = !empty($upload_dir) && substr($upload_dir,-1,1) == '/'
? substr($upload_dir,0,-1)
: $upload_dir;
$upload_dir = !empty($upload_dir) ? $upload_dir : 'assets/uploads/files';
/** Check if the upload Url folder exists. If not then throw an exception **/
if (!is_dir(FCPATH.$upload_dir)) {
throw new Exception("It seems that the folder \"".FCPATH.$upload_dir."\" for the field name
\"".$field_name."\" doesn't exists. Please create the folder and try again.");
}
$this->upload_fields[$field_name] = (object) array(
'field_name' => $field_name,
'upload_path' => $upload_dir,
'encrypted_field_name' => $this->_unique_field_name($field_name));
return $this;
}
public function set_another_field_upload($field_name, $upload_dir = '')
{
$upload_dir = !empty($upload_dir) && substr($upload_dir,-1,1) == '/'
? substr($upload_dir,0,-1)
: $upload_dir;
$upload_dir = !empty($upload_dir) ? $upload_dir : 'assets/uploads/files';
/** Check if the upload Url folder exists. If not then throw an exception **/
if (!is_dir(FCPATH.$upload_dir)) {
throw new Exception("It seems that the folder \"".FCPATH.$upload_dir."\" for the field name
\"".$field_name."\" doesn't exists. Please create the folder and try again.");
}
$this->upload_fields[$field_name] = (object) array(
'field_name' => $field_name,
'upload_path' => $upload_dir,
'encrypted_field_name' => $this->_unique_field_name($field_name));
return $this;
}