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插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
jquery.masonry瀑布流效果
May 25 jQuery
jQuery导航条固定定位效果实例代码
May 26 jQuery
jQuery实现简单的手风琴效果
Apr 17 jQuery
jquery实现一个全局计时器(商城可用)
Jun 30 jQuery
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 jQuery
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
jQuery实现每隔一段时间自动更换样式的方法分析
May 03 jQuery
通过jquery.cookie.js实现记住用户名、密码登录功能
Jun 20 jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
jQuery属性选择器用法实例分析
Jun 28 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
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
用PHP做了一个领取优惠券活动的示例代码
2019/07/05 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
Python类的多重继承问题深入分析
2014/11/09 Python
python enumerate函数的使用方法总结
2017/11/15 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
tensor和numpy的互相转换的实现示例
2019/08/02 Python
详解python中*号的用法
2019/10/21 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
Python2与Python3的区别详解
2020/02/09 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
python3中编码获取网页的实例方法
2020/11/16 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
食堂采购员岗位职责
2014/03/17 职场文书
任命书范本大全
2014/06/06 职场文书
天下第一关导游词
2015/02/06 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
2019个人半年工作总结
2019/06/21 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android