Php 使用codeigniter上传多幅图像
我正在尝试使用以下代码使用不同的文件输入进行多个图像上载Php 使用codeigniter上传多幅图像,php,codeigniter,file-upload,Php,Codeigniter,File Upload,我正在尝试使用以下代码使用不同的文件输入进行多个图像上载 <input name="attachement[]" type="file"> <input name="attachement[]" type="file"> 我的codeigniter代码是 $config = array( 'upload_path' => $path, 'max_size' => 1024 * 100,
<input name="attachement[]" type="file">
<input name="attachement[]" type="file">
我的codeigniter代码是
$config = array(
'upload_path' => $path,
'max_size' => 1024 * 100,
'allowed_types' => 'gif|jpeg|jpg|png',
'overwrite' => true,
'remove_spaces' => true);
$images = array();
$this->load->library('upload');
$files = $_FILES;
$count = count($_FILES[$attachName]['name']);
for ($i = 0; $i < $count; $i++) {
$_FILES[$attachName]['name'] = $files[$attachName]['name'][$i];
$_FILES[$attachName]['type'] = $files[$attachName]['type'][$i];
$_FILES[$attachName]['tmp_name'] = $files[$attachName]['tmp_name'][$i];
$_FILES[$attachName]['error'] = $files[$attachName]['error'][$i];
$_FILES[$attachName]['size'] = $files[$attachName]['size'][$i];
$fileName = $title . '_' . $_FILES[$attachName]['name'];
$images[] = $fileName;
$config['file_name'] = $fileName;
$this->upload->initialize($config);
$this->upload->do_upload();
if ($this->upload->do_upload()) {
$return['data'][] = $this->upload->data();
$return['status'] = "success";
$return['msg'] = sprintf($this->lang->line('success_item_added'), "Image", "uploaded");
} else {
$return['status'] = 'danger';
$return['msg'] .= $this->upload->display_errors('', '') . "\r";
}
}
$config=array(
“上传路径”=>$path,
“最大尺寸”=>1024*100,
“允许的_类型”=>“gif | jpeg | jpg | png”,
“覆盖”=>true,
“删除_空格”=>true);
$images=array();
$this->load->library('upload');
$files=$\u文件;
$count=count($_文件[$attachName]['name']);
对于($i=0;$i<$count;$i++){
$_FILES[$attachName]['name']=$FILES[$attachName]['name'][$i];
$_FILES[$attachName]['type']=$FILES[$attachName]['type'][$i];
$\u FILES[$attachName]['tmp\u name']=$FILES[$attachName]['tmp\u name'][$i];
$_FILES[$attachName]['error']=$FILES[$attachName]['error'][$i];
$_FILES[$attachName]['size']=$FILES[$attachName]['size'][$i];
$fileName=$title.'.'.$\u文件[$attachName]['name'];
$images[]=$fileName;
$config['file_name']=$fileName;
$this->upload->initialize($config);
$this->upload->do_upload();
如果($this->upload->do_upload()){
$return['data'][=$this->upload->data();
$return['status']=“success”;
$return['msg']=sprintf($this->lang->line('success\u item\u added'),“Image”,“upload”);
}否则{
$return['status']='danger';
$return['msg']。=$this->upload->display_errors('','')。“\r”;
}
}
在上面的代码中$attachName=“attachement”
但是我得到错误您没有选择任何要上传的文件
我做错了什么?对于多文件选择和上载,您必须使用
<input name="attachement[]" type="file" multiple>
否则,它将始终选择一个文件,具有相同文件的多个文件将相互覆盖。请将
enctype=“multipart/form data
包含在您的
标记中:
<form method="post" enctype="multipart/form-data">
<input name="attachement[]" type="file">
<input name="attachement[]" type="file">
</form>
我找到了解决问题的方法
$this->upload->do_upload(); <-- removed this line
对此
if ($this->upload->do_upload($attachName)) {
我希望这对某人有帮助
感谢那些没有评论的人投票失败,甚至是为什么我不需要标记中的多个,那么你必须为每个标记保留不同的名称,否则最后一个标签将覆盖上一个标记。这是发生在你身上的。嗨,我使用$attachName,我得到的错误就像“变量找不到”“…如何解决这个问题。$attachName是一个变量,它是表单中上载字段的名称。我只使用了我的上载文件名,我无法使用任何变量。如果我添加3个图像意味着,只有1个图像添加到db和给定文件夹中,其余两个图像没有添加。要查看我的代码……请给我解决这个问题的方法,我挣扎了两天
if ($this->upload->do_upload($attachName)) {