0

模型功能:

public function file_upload($folder, $allowed_type, $max_size = 0, $max_width = 0, $max_height = 0)
    {
        $folder = $this->path . $folder;

        $files = array();
        $count = 0;

        foreach ($_FILES as $key => $value) :

            $file_name = is_array($value['name']) ? $value['name'][$count] : $value['name'];
            $file_name = $this->global_functions->char_replace($file_name, '_');
                $count++;
                $config = array(
                'allowed_types' => $allowed_type,
                'upload_path'   => $folder,
                'file_name'     => $file_name,
                'max_size'      => $max_size,
                'max_width'     => $max_width,
                'max_height'    => $max_height,
                'remove_spaces' => TRUE
                 );

        $this->load->library('image_lib');
            $this->image_lib->clear();
            $this->load->library('upload');
            $this->upload->initialize($config);

            if (!$this->upload->do_upload($key)) :
                $error = array('error' => $this->upload->display_errors());
            var_dump($error);
                return FALSE;
            else :
                $file = $this->upload->data();
                $files[] = $file['file_name'];
            endif;

        endforeach;

        if(empty($files)):
            return FALSE;
        else:
            return implode(',', $files);
        endif;
    }

此功能部分工作。文件正在上传到所选文件夹,但我收到此错误:您没有选择要上传的文件。结果是FALSE ?似乎有什么问题?(表单正在使用form_open_multipart

4

2 回答 2

1

请确保您的文件标签字段具有以下名称:

   $key='userfile' //which is name of input type field name
于 2013-03-14T16:31:47.033 回答
1

发生这种情况时,您的任何文件输入是否为空?$_FILES如果没有为输入指定文件,将包含一个“空”数据数组。比如我的文件输入名称是one,我提交的时候没有指定文件:

Array
(
    [one] => Array
        (
            [name] => 
            [type] => 
            [tmp_name] => 
            [error] => 4
            [size] => 0
        )
)

在处理上传之前,您应该检查文件数据是否为空。PHPis_uploaded_file()对此很有用。

于 2013-03-15T00:38:59.540 回答