1

我一直在尝试使用 CodeIgniter 的文件上传类上传图像。该图像用于用户的化身。这是我的代码片段:

//upload file
            if($_FILES['image']['name'] != ''){
                if (!file_exists($dirpath))
                    mkdir($dirpath);

                $this->load->library('upload');
                $config['upload_path'] = $dirpath;
                $config['allowed_types'] = 'gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG';
                $config['max_size'] = '0';
                $config['max_width'] = '0';
                $config['max_height'] = '0';
                $config['file_name'] = $_FILES['image']['name'];
                $config['overwrite'] = true;
                $config['remove_spaces'] = false;

                $this->upload->initialize($config);
                $data = "";
                $error = "";

                $photo_result = $this->upload->do_upload('image');
                if ($photo_result)
                    if($action == 'update'){
                        foreach (glob($dirpath.'/'.$old_image.'*') as $file)
                            if (file_exists($file))unlink ($file);
                    }
                    if($new_resto->resized == 0){
                        if(resize_image($widths,$theuser))
                            $this->usermodel->update($theuser->id, array('resized'=>1), 'object',$authorization);
                    }
                echo json_encode(array('config'=>$config,'upload_data'=>$this->upload->data()));
                }
            }

文件上传应该是成功的,因为当我打印出来$this->upload->data()的时候,显示上传的数据不为空。奇怪的是,这段代码适用于创建新用户,但是当我尝试更新用户时,文件没有上传。我chmod($dirpath, 0777)在上传之前尝试过使用,chmod($dirpath, 0755)之后仍然没有运气。

有任何想法吗?谢谢。

4

2 回答 2

2

我的错误,我$old_image在更新数据后分配,所以$old_image包含当前图像名称,导致它在我调用时被删除unlink($file)

问题解决了 :)

于 2012-10-17T09:06:21.040 回答
0

请使用以前版本的 CodeIgniter 更新您的 Upload.php 类

于 2012-10-17T09:16:21.240 回答