jQuery自定义图片上传插件实例代码


Posted in jQuery onApril 04, 2017

摘要

1.jquery自定义插件方法
2.表单file样式调整
3.利用formData,ajax上传图片
4.js,css弹出层
5.springmvc上传图片

效果

jQuery自定义图片上传插件实例代码

调用方式

$("#picUrl").imgUpload({}),在代码内部为调用对象绑定了click事件,点击弹出上传界面。

$(function(){
$("#picUrl").imgUpload({url:'<%=basePath%>'+'file/upload.do'})
$("#picUrl").imgUpload("resize");/**弹出层水平垂直居中**/
})

jquery自定义插件要点

1.定义作用域

2.$.fn.***为每个jquery对象扩展方法

3.设置默认值

4.return this.each,支持链式调用

/**部分代码**/
(function($){
 $.fn.imgUpload=function(options,param){
  if(typeof options =="string"){
   return $.fn.imgUpload.methods[options](this,param);
  }
  /**this为jquery对象**/
  options = options || {};
  return this.each(function() {
   /**this 为 dom 对象**/
   var state=$.data(this,"imgUploadData");
   var opts;
   if(state){
    opts = $.extend(state.options, options);
    state.options = opts;
   }else{
    opts = $.extend({},$.fn.imgUpload.defaults,options);
    $.data(this,"imgUploadData",{options:opts});
   }
   init(this);
 });
 };
 $.fn.imgUpload.methods={
  resize:function(jq){
    $(".main-layer").css({
    left:($(window).width()-$(".main-layer").outerWidth())/2,
    top:($(window).height()-$(".main-layer").outerHeight())/2
   });
   
  }
 }
 $.fn.imgUpload.defaults={
  width:100,
  height:200,
  url:'#'
 }
})(jQuery);

利用formData,ajax上传文件

/**html5 formData**/
 function upload(jq){
  var formData=new FormData();
  var opts = $.data(jq,"imgUploadData").options;
  formData.append('file',$("#imgFile")[0].files[0]);
  $.ajax({
   url: opts.url,
   type: 'POST',
    cache: false,
    data: formData,
    processData: false,
    contentType: false,
    success:function(url){
    console.info(url);
   },
   error:function(url){
    console.info(url);
   }
  })
 }

表单file样式调整

.main-layer .a-upload { 
 padding: 4px 10px; 
 height: 20px; 
 line-height: 20px; 
 position: relative; 
 cursor: pointer; 
 color: #888; 
 background: #fafafa; 
 border: 1px solid #ddd; 
 border-radius: 4px; 
 overflow: hidden; 
 display: inline-block; 
 *display: inline; 
 *zoom: 1 ;
 width:90%;
 text-align: center;
} 
 
.a-upload input { 
 position: absolute; 
 font-size: 100px; 
 right:0; 
 top: 0; 
 opacity: 0; 
 filter: alpha(opacity=0); 
 cursor: pointer 
}

js,css弹出层样式

/***遮罩层样式**/
.wrap-overlayer{
 position: fixed;
 left: 0;
 top:0;
 width: 100%;
 height: 100%;
 background-color: rgba(0,0,0,0.3);
 z-index:10;
 display:none;
}
/**上传组件样式**/
.main-layer{
 position:absolute;
 left:50%;top:50%;
 background-color: #fff;
 width:350px;
 height: 150px;
}

后台部分代码

@RequestMapping(value="/upload.do",method=RequestMethod.POST) 
  private void fildUpload(@RequestParam(value="file",required=false) MultipartFile file, 
    HttpServletRequest request,HttpServletResponse resp)throws Exception{  
   //获得物理路径webapp所在路径 
   String pathRoot = request.getSession().getServletContext().getRealPath(""); 
   String path=""; 
   if(!file.isEmpty()){ 
    //生成uuid作为文件名称 
    String uuid = UUID.randomUUID().toString().replaceAll("-",""); 
    //获得文件类型(可以判断如果不是图片,禁止上传) 
    String contentType=file.getContentType(); 
    //获得文件后缀名称 
    String imageName=contentType.substring(contentType.indexOf("/")+1); 
    path="/images/"+uuid+"."+imageName; 
    file.transferTo(new File(pathRoot+path)); 
   } 
   request.setAttribute("imagesPath", path); 
  }

以上所述是小编给大家介绍的jQuery自定义图片上传插件实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery查找和过滤_动力节点节点Java学院整理
Jul 04 jQuery
jQuery实现拼图小游戏(实例讲解)
Jul 24 jQuery
jQuery初级教程之网站品牌列表效果
Aug 02 jQuery
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
jquery插件开发之选项卡制作详解
Aug 30 jQuery
jquery 键盘事件的使用方法详解
Sep 13 jQuery
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 jQuery
JQuery搜索框自动补全(模糊匹配)功能实现示例
Jan 08 jQuery
jquery分页优化操作实例分析
Aug 23 jQuery
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
Mar 20 jQuery
jQuery使用unlock.js插件实现滑动解锁
Apr 04 #jQuery
利用jquery正则表达式在页面验证url网址输入是否正确
Apr 04 #jQuery
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
Apr 04 #jQuery
使用jQuery卸载全部事件的思路详解
Apr 03 #jQuery
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
Apr 03 #jQuery
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 #jQuery
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 #jQuery
You might like
PHP+MYSQL的文章管理系统(二)
2006/10/09 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
关于extjs4如何获取grid修改后的数据的问题
2013/08/07 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
vscode下的vue文件格式化问题
2018/11/28 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
python操作日期和时间的方法
2014/03/11 Python
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
浅谈python中get pass用法
2019/03/19 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
python调用自定义函数的实例操作
2019/06/26 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
构造方法和其他方法的区别
2016/04/26 面试题
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
班组长安全生产职责
2013/12/16 职场文书
顶岗实习接收函
2014/01/09 职场文书
工作失误检讨书范文大全
2014/01/13 职场文书
企业内部培训方案
2014/02/04 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript