上传图片模块
apicloud代码部分
function UpdateAvatar()
{
api.actionSheet({
cancleTitle : "取消",
buttons : ["拍照", "打开相册"]
}, function(ret, err) {
if (ret.buttonIndex == 3) {
return;
}
var sourceType = (ret.buttonIndex == 1) ? "camera" : "album";
api.getPicture({
sourceType : sourceType,
destinationType:"url",
allowEdit : true,
quality : 70,
targetWidth : 100,
targetHeight : 100
}, function(ret, err) {
if (ret.data) {
var img=ret.data;
var uid=$api.getStorage("user").id;
api.ajax({
url : "http://www.xxxxcom.cn/index.php?g=Osapp&m=Mine&a=updateAvatar",
method : "post",
cache : false,
timeout : 30,
dataType : "json",
data : {
files : {upfile : ret.data},
values:{uid:uid}
}
}, function(ret, err) {
if (ret.msg==1) {
$api.attr($api.byId("avatarImg"), "src", img);
var user = $api.getStorage("user");
user.avatar = img;
$api.setStorage("user", user);
} else {
alert("上传失败");
}
});
}else{
alert($api.jsonToStr(err));
}
});
});
}
后台处理数据部分
public function updateAvatar(){
$uid=$_POST["uid"];
$upload = new ThinkUpload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array("jpg", "gif", "png", "jpeg");// 设置附件上传类型
$upload->rootPath = "./".C("UPLOADPATH"); // 设置附件上传根目录
$upload->savePath = "./avatar/"; // 设置附件上传(子)目录
$info = $upload->uploadOne($_FILES["upfile"]);
if(!$info) {// 上传错误提示错误信息
$arr=array("msg"=>0);
echo json_encode($arr);
}else{// 上传成功
$avatar=$info["savename"];
$user_model=M("users");
$ret=$user_model->find($uid);
$old_img=$ret["avatar"];
$result=$user_model->where(array("id"=>$uid))->save(array("avatar"=>$avatar));
if($result){
// 删除旧的头像
sp_delete_avatar($old_img);
$arr=array("msg"=>1);
echo json_encode($arr);
}
}
}