Php 上传后设置自动配置文件图片
在我的社交网站上,我有一些选项,比如在fb上,用户可以更改个人资料图片。当用户单击配置文件图像时,会打开“新建模式”窗口,用户可以在该窗口中选择要在配置文件上设置的现有图像或上载新图像。上传新照片是通过Php 上传后设置自动配置文件图片,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,在我的社交网站上,我有一些选项,比如在fb上,用户可以更改个人资料图片。当用户单击配置文件图像时,会打开“新建模式”窗口,用户可以在该窗口中选择要在配置文件上设置的现有图像或上载新图像。上传新照片是通过表单inptu[file]完成的,我用ajax发送请求。我正在为此应用程序使用Codeigniter fw。图像成功上传到dir并存储在数据库中。我的问题是bcs我不知道如何自动将新上传的照片设置为个人资料照片。在users表中,我有一个名为porfile\u picture的cell,其中存储了
表单inptu[file]
完成的,我用ajax发送请求。我正在为此应用程序使用Codeigniter fw。图像成功上传到dir并存储在数据库中。我的问题是bcs我不知道如何自动将新上传的照片设置为个人资料照片。在users
表中,我有一个名为porfile\u picture
的cell
,其中存储了用户选择的图片的id
。使用UPDATE
sql查询在配置文件上设置新图片,使用new更改现有图片id
上传新图片的型号:
public function create($data = array())
{
$this->db->insert($this->_table, $data);
}
在控制器中,我有ci文档中关于如何上传图像的标准方法
public function uploadProfilePicture()
{
// image lib settings and validations
$photo_data = array(
'owner_id' => $this->_accountID,
'album_id' => 5, // profilne slike album
'photo_name' => $data['upload_data']['file_name'],
'photo_ext' => $data['upload_data']['file_ext'],
'photo_size' => $data['upload_data']['file_size'],
'photo_type' => $data['upload_data']['image_type'],
'date_uploaded' => date('Y-m-d H:i:s'),
'date_midified' => date('Y-m-d H:i:s'),
'photo_guid' => $guid
);
//debug_view($data);
$this->photo->create($photo_data);
}
public function setProfilePicture($picture_id = 0)
{
$this->account->edit($this->_accountID, array(
'profile_picture' => $picture_id,
));
redirect('profile');
}
上传通过ajax完成:
// Upload picture
$("#upload_profile_image").on('submit', function(e) {
var picture = $(".profile_picture").val();
$(".loader-wrapper").show();
$.ajax({
type: 'POST',
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
url: baseurl + '/photo/uploadProfilePicture',
success: function(data, textStatus, jqXHR) {
$(".loader-wrapper").hide();
console.log(data);
},
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.responseText);
}
});
});
这上传工作完美现在只有什么我需要知道如何设置上传的图像为文件。我需要在数据库中再发送一个查询以更新profile\u picture
您有什么建议吗您应该在
$(“.loader wrapper”).hide()之后返回AJAX响应的新图像路径代码>可以将图像src更改为新的。显示视图文件html