起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4269|回复: 7

[分享] 【分享】关于用户头像的处理

  [复制链接]

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
发表于 2016-6-16 21:33:29 | 显示全部楼层 |阅读模式
本帖最后由 负暄 于 2016-6-16 21:46 编辑

http://bbs.wex5.com/forum.php?mod=viewthread&tid=91095&extra=

《拍照与图片上传》 这个帖子是我在做用户更换头像时整理分享的。在功能实现以后,又根据想法的深入陆续做如下优化。今天见到论坛里有同学问到这个问题,特此整理出来,跟大家分享,也请大神们指教。

1、对于初次注册的用户,让人在输入信息的时候还要拍照上传,会显得很麻烦。为简化注册流程,我采用了提供默认头像的策略,使其可以快速完成注册,快速进入系统使用。以后有闲暇、有心情再慢慢折腾头像。因此在新增user表时,我将fImage字段默认赋值 "./user/img/default.png",并在相应的目录下提供了图片。
2、未更换头像的用户,在登录后,显示头像的函数改为如下代码,这样保证了默认头像与用户更换的头像的兼容。
        //显示用户头像 Bind-attr-src
        //兼容默认头像,自定义头像。
        Model.prototype.transUrl = function(fImage,fOwnerID) {

                var defaultImage = '';
                var defaultUrl = './user/img/default.png';                                
                if((!fImage)||(fImage==defaultUrl)){
                        //默认
                        defaultImage = require.toUrl(defaultUrl);
                }else{
                        //自定义      
                        // this.actionUrl是在model中定义的变量 就是后台定义的浏览图片的baas
                        //this.actionUrl = "/baas/summer/classes/browsePicfile";                 
                        var url = this.actionUrl + '?storeFileName=' + fImage + '&ownerID=' + fOwnerID ;
       
                        defaultImage = require.toUrl(url);                                                
                }
               
                return defaultImage;
        };               



评分

参与人数 1威望 +15 收起 理由
kenminkajp + 15 赞一个!

查看全部评分

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
 楼主| 发表于 2016-6-16 21:40:08 | 显示全部楼层
本帖最后由 负暄 于 2016-6-29 08:21 编辑

3、头像上传时,保证一个用户一个文件,不产生垃圾文件。因此对上传函数也做了改进。
        //调用bass图片上传               
        Model.prototype.uploadPic = function(imageData){

                //用户信息,用于上传图片后保存图片链接fImage
                var userid = this._UserID;
                var userBaasData = this.comp("userBaasData");
                var storeFileName =  "";
                var imageJson = {};

                if (this._UserImage != null && this._UserImage != "" && this._UserImage != "[]" && this._UserImage != "./user/img/default.png") {                  
                        storeFileName =this._UserImage;        
                        if(!storeFileName){
                                storeFileName = justep.UUID.createUUID(); //如果已经传过头像,则沿用原来的文件名。保证一个用户只有一个头像文件。
                        }               
                }else{
                        storeFileName = justep.UUID.createUUID();//没有上传过,则产生新的文件名
                }               
               
                justep.Baas.sendRequest({
                "url" : "/summer/classes",
                "action" : "uploadPicfile",
                "async" : false,
                "params" : {
                        "picData" : imageData,
                        "ownerID" : userid,
                        "storeFileName" : storeFileName
                },
                "success" : function(data) {

                        justep.Util.hint("图片上传成功");

                        //修改数据库中的图片链接                       
                        userBaasData.setFilter("Idfilter", "fID='"+userid+"'");
                        userBaasData.refreshData();        
                        if(userBaasData.getCount()>0){
                                var fImage = storeFileName;     
                                userBaasData.setValue("fImage", fImage);
                                userBaasData.saveData();
                        }               
                }
            });

        };        
回复 支持 反对

使用道具 举报

134

主题

417

帖子

844

积分

高级会员

Rank: 4

积分
844
QQ
发表于 2016-6-17 09:44:50 | 显示全部楼层
负暄 发表于 2016-6-16 21:40
3、头像上传时,保证一个用户一个文件,不产生垃圾文件。因此对上传函数也做了改进。
        //调用bass图 ...

大神,我有个问题,截图头像能截成圆形的么???我试着把截图的样式改成圆形,但结果不是圆形的,怎么办??
回复 支持 反对

使用道具 举报

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
 楼主| 发表于 2016-6-17 10:28:18 | 显示全部楼层
我是猿 发表于 2016-6-17 09:44
大神,我有个问题,截图头像能截成圆形的么???我试着把截图的样式改成圆形,但结果不是圆形的,怎么办 ...

这是css 功能,把image的class设成img-circle就行了。
回复 支持 反对

使用道具 举报

134

主题

417

帖子

844

积分

高级会员

Rank: 4

积分
844
QQ
发表于 2016-6-17 11:29:48 | 显示全部楼层
负暄 发表于 2016-6-17 10:28
这是css 功能,把image的class设成img-circle就行了。

把哪个image设置成那个class???是原图片还是截图框还是效果框?img-circle只要设置了这个class属性,就能截图成圆形吗??谢谢
回复 支持 反对

使用道具 举报

64

主题

216

帖子

696

积分

高级会员

Rank: 4

积分
696
QQ
发表于 2016-6-20 16:07:32 | 显示全部楼层
请问,this._UserImage这个怎么定义的?
回复 支持 反对

使用道具 举报

1

主题

9

帖子

91

积分

初级会员

Rank: 2

积分
91
QQ
发表于 2016-7-10 11:10:32 | 显示全部楼层
可以把头像文件保存成图片格式吗
回复 支持 反对

使用道具 举报

2

主题

9

帖子

189

积分

初级会员

Rank: 2

积分
189
QQ
发表于 2017-1-3 14:22:30 | 显示全部楼层
大神我问一下,数据库连接地址不变,头像名称不变,新头像上传了,在界面上bind-attr-src还是显示之前的头像,通过连接地址访问的是新头像,这个image绑定baasData有缓存吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-26 18:50 , Processed in 0.084106 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表