我制作了一个可以使用 Facebook 帐户登录的网站。
我可以轻松放置基本用户信息,但照片根本不起作用。
这是我上传照片的代码。
$imageURL = 'https://graph.facebook.com/'.$fb_id.'/picture?type=large';
$config['upload_path'] = $_SERVER['DOCUMENT_ROOT'].'/'.$this->config->item('cf_dir_uphoto_temp');
$config['allowed_types'] = 'gif|png|jpg';
$config['file_name'] = $this->session->userdata(SESSION_USERID).time();
$config['max_filename'] = '70';
$config['overwrite'] = FALSE;
$config['remove_spaces'] = TRUE;
$this->load->library('upload', $config);
if($this->upload->do_upload('photo'))
{
$data = $this->upload->data();
$src_width = $src_height = ($data['image_width'] <= $data['image_height'])? $data['image_width'] : $data['image_height'];
$buffer_width = $buffer_height = 150;
$buffer_x = 0;
$buffer_y = 0;
$src_x = sprintf('%d', ($data['image_width'] - $src_width)/2);
$src_y = sprintf('%d', ($data['image_height'] - $src_height)/2);
$save_cropfile = $_SERVER['DOCUMENT_ROOT'].'/'.$this->config->item('cf_dir_uphoto_original').$data['file_name'];
$quality = 100;
if($data['file_type'] == 'image/jpeg')
{
$src_img = imagecreatefromjpeg($data['full_path']);
$buffer_img = ImageCreateTrueColor($buffer_width, $buffer_height);
imagecopyresampled($buffer_img, $src_img,
$buffer_x, $buffer_y, $src_x, $src_y,
$buffer_width, $buffer_height, $src_width, $src_height
);
imagejpeg($buffer_img, $save_cropfile, $quality);
}else if($data['file_type'] == 'image/gif')
{
$src_img = imagecreatefromgif($data['full_path']);
$buffer_img = ImageCreateTrueColor($buffer_width, $buffer_height);
imagecopyresampled($buffer_img, $src_img,
$buffer_x, $buffer_y, $src_x, $src_y,
$buffer_width, $buffer_height, $src_width, $src_height
);
imagegif($buffer_img, $save_cropfile);
}else if($data['file_type'] == 'image/png')
{
$src_img = imagecreatefrompng($data['full_path']);
$buffer_img = ImageCreateTrueColor($buffer_width, $buffer_height);
imagecopyresampled($buffer_img, $src_img,
$buffer_x, $buffer_y, $src_x, $src_y,
$buffer_width, $buffer_height, $src_width, $src_height
);
imagepng($buffer_img, $save_cropfile);
}
$config['image_library'] = 'gd2';
$config['source_image'] = $save_cropfile;
$config['new_image'] = $_SERVER['DOCUMENT_ROOT'].'/'.$this->config->item('cf_dir_uphoto_thumb');
$config['width'] = 50;
$config['height'] = 50;
$this->load->library('image_lib', $config);
$this->image_lib->resize();
unlink($data['full_path']);
$p_data = $this->user->set_user_photo($data['file_name']);
}else
echo $this->upload->display_errors();
这是非常错误的代码。
$imageURL 是将要转换为 jpg 地址的图片地址。
你能给我一个想法如何做到这一点吗?谢谢你。