2019独角兽企业重金招聘Python工程师标准>>>

Client/Views/Admin/person.tpl

1.html页面代码,上传文件控件和头像叠放重合,并且把上传控件设为透明,叠放顺序优先级高于<img>

<span style="white-space:pre">                           </span><div class="form-group"><label for="name" class="col-lg-5 col-sm-2 control-label"><img  class="img-thumbnail"  style="cursor:pointer;width:100px;margin-left:300px;margin-right:300px;"  alt="头像" on="btnHead" src='apis/admin/person/p?params={"url":"${Data.uimage}"}'><span class="fileinput-button"><input id="fileupload"  type="file" name="files" style="position:absolute;opacity:0;z-index:20;top:7px;height:100px;width:100px;cursor:pointer;margin-left:300px;margin-right:300px;" multiple></span><small style="float:both;">如要更换头像,请点击头像</small></label></div>

注:这里的表单随着窗口大小显示异常问题没有处理.

2.在客户端的js,如果上传控件发生变化而触发实现,(并不是点击触发事件)

awf.task({code: "Data",method: function(e) {//e.success();_.post("api/admin/person/read", {},function(r) { //难点if (r.length > 0) {e.success(r[0]);} else {/*e.result({"failure":true});*/}}, "json");}}).task({code: "tpl",method: function(e) {app.tpl("Admin->person", function(tpl) {e.success(tpl);});}}).async({success: function(result) {result.cid = 'main' + app.genID();var info = result.tpl(result, {});app.gui.page(info);app.gui.on(_('#' + result.cid), events);//input改变值而触发事件,change方法events.parent.find('input[name="file"]').on("change",events.change)events.parent.find('input[name="files"]').on("change",events.btnUpload)//events.parent.find('input[name="files"]').on("btnUpload",events.btnUpload)},
/*      failure:function(result){result.result({"failure":false});
}*/
});

3.调用上传方法

btnUpload:function(sender,arg){var form = _(sender.target).parents('form');//var form = events.parent;if(sending){//再点击"发送"按钮,提示文件发送中,在这之前要定义号var sending= false;form.find('.alert-warning').html('文件发送中...').show();return;}sending = true;var parms = JSON.stringify({t:Date.now()});form.upload("api/admin/person/upload",{params:parms,key : auth.key,sign : md5.Sign(parms+auth.sign)},{failure:function(){sending = false;},success:function(str){sending = false;var r = JSON.parse(str);form.find('.alert').html("").hide();if(r.status){form.find('.alert-warning').html(r.status.description).show();}else{//form[0]&&form[0].reset();if (form[0]) {form[0].reset();}form.find('[name="filename"]').html("无");events.btnPer();}},progress:function(){},cancel:function(){sending = false;}});},

4.服务端的js

upload: {attribute: {"user":true},method: function(e) {var _ = this.apis;var ucode = e.action.user.ucode;var sql = "update userbase set uimage=:fileid where ucode=:ucode";//console.log("files="+files+", "+"path="+path+", "+"id="+id+","+"name=" + name + "," + "type=" + type);//console.log(e.params.files);if(e.params.files && e.params.files.path){app.store.save({id:e.params.files.hash,path:e.params.files.path,name:e.params.files.name,type:e.params.files.type}).success(function(fileid){_.sql.save(sql,{fileid:fileid,ucode:ucode}).success(function(result){e.result({url:fileid});}).failure(function(){e.result({"failure":false});});}).failure(function(e){console.log(e.params.files.hash,e);e.result({"failure":false});}).end();}else{e.result({"failure":false});}}  },

5.效果:

转载于:https://my.oschina.net/snowbobo/blog/414879

小黑小波比.点击头像直接上传的实现相关推荐

  1. 微信小程序用户头像编辑上传

    微信小程序用户头像编辑上传 近期接触了一个小程序项目,需要可以修改用户头像,默认获取用户当前微信头像,点击头像,可调用手机照相机或者本地相册,更换图片. html代码如下: js代码:

  2. 头像截图上传两种方式(SWFUpload、一个简单易用的flash插件)

    SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统<input ty ...

  3. 微信小程序云开发如何实现上传视频 以及 图片

    微信小程序云开发如何实现上传视频 以及 图片 最基础的数据库增删改查,上传到云存储即可实现,附源码 wxml文件 <button bindtap="upload">上传 ...

  4. 1小时搞定cropper.js制作头像/图片上传、裁剪、并发送至后端

    1小时搞定cropper.js制作头像/图片上传.裁剪.并发送至后端 先给大家看一下最终效果. 大多数功能都是由Cropper.js封装好的,调整并制作了: 上传图片 对图片的裁剪以及调整(旋转.缩放 ...

  5. 个人头像手动上传的后端代码展示(基于Springboot)

    个人头像手动上传(基于Springboot的后端代码展示) 场景一:一般来说,对于微信小程序,很多时候登录的场景都是,"是否同意上传微信头像":"获取您的用户信息&quo ...

  6. 新浪微博 头像上传 php,使用canvas实现仿新浪微博头像截取上传功能_javascript技巧...

    最近看到微博头像上传功能很感兴趣,于是就使用canvas写了一个,本文写的不好还请见谅.本程序目前在谷歌浏览器和火狐浏览器测试可用,ie浏览器无法支持. 因为ie的安全机制不允许img使用本地路径,所 ...

  7. uni-app——小程序实现本地图片的上传以及身份证的智能识别

    文章目录 前言 一.示例图 二.实现过程 1.完成提交图片的api地址 2.获取本地图片 3.将本地图片上传至开发者服务器 三.具体实现代码 四.身份证的智能识别 总结 前言 上传本地图片的功能很常见 ...

  8. html头像裁剪仿微信,使用canvas实现仿新浪微博头像截取上传功能

    最近看到微博头像上传功能很感兴趣,于是就使用canvas写了一个,本文写的不好还请见谅.本程序目前在谷歌浏览器和火狐浏览器测试可用,ie浏览器无法支持. 因为ie的安全机制不允许img使用本地路径,所 ...

  9. 一个小的java作业,第一次上传CSDN,原创的

    自己写的一个小的java作业,第一次上传CSDN,原创的,最近在玩帝国3,然后根据石头剪刀布,炮车骑兵长枪兵的克制规则写了一下,花了一个上午的时间. import java.util.Random;i ...

最新文章

  1. 英特尔王锐:软硬件并驾齐驱,开发者是真英雄
  2. 被鱼刺扎一下就没了条手臂?这种“吃人肉”的细菌身边并不罕见
  3. 递归式求时间复杂度的代入法与迭代法的举例讲解
  4. JMeter基础之——录制脚本
  5. 找不到类型{0} 它在 ServiceHost 指令中提供为 Service 特性值
  6. [网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及防御机理
  7. 分布式代码管理系统GIT
  8. linux 粘贴内容命令行,Linux下命令行中的复制和粘贴
  9. java addlistener_Java怎样监听文本//比如下面 y.addInputMethodListener((InputMethodListener) this);...
  10. 目瞪口呆!137亿年的宇宙演化,竟然如此震撼!简直颠覆想象....
  11. Flink 1.7 文档翻译活动期待大家的参与 | ApacheCN
  12. idea生成类中序列化id
  13. 自己实现Int32Collection(.Net 1.1),以及效率问题的体会
  14. RxSwift PriorityQueue 优先级队列的实现
  15. Lecture 5:无模型控制
  16. Ubuntu10.10下ftp的安装配置
  17. Python反编译apk,获取各类信息
  18. Freescale PowerPC系列架构 处理器 种类介绍 型号发展
  19. 单片机是嵌入式的子类
  20. C++链表偶数在前,奇数在后的简单方法

热门文章

  1. SAP MM 销售订单库存与普通库存之间相互转换过账后对于EBEWH以及MBEWH表的更新
  2. 预告丨2018年值得关注的200场机器学习会议
  3. 单纯形法(四)理论部分(终结)
  4. 用人工智能监督人工 遭遇非技术困局
  5. 宇宙的第一推动力,必然存在吗?
  6. CCAI 2019 | 郑南宁:“自觉性AI技术”可助力无人驾驶
  7. 【工业4.0】深度报告:独家解密工业4.0真正图谋?跟踪软件帝国的十年
  8. 五大风口产业全景手绘图(新能源汽车、人工智能等)
  9. DeepMind 的2017:有 AlphaGo,更有社会责任
  10. 汇真科技李利鹏 :人工智能的应用边界