我一直在尝试使用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)
仍然没有运气。
有什么想法吗?感谢。
答案 0 :(得分:2)
我的错误是,我在更新数据后分配了$old_image
,因此$old_image
包含当前图片名称,导致在我拨打unlink($file)
时将其删除。
问题解决了:))
答案 1 :(得分:0)
请使用以前版本的CodeIgniter
更新您的Upload.php类