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设置图片等比例缩小的方法
Apr 29 jQuery
jQuery异步提交表单实例
May 30 jQuery
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 jQuery
jQuery 实现鼠标画框并对框内数据选中的实例代码
Aug 29 jQuery
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 jQuery
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
jQuery实现参数自定义的文字跑马灯效果
Aug 15 jQuery
jQuery实现动画、消失、显现、渐出、渐入效果示例
Sep 06 jQuery
jQuery实现合并表格单元格中相同行操作示例
Jan 28 jQuery
jquery多级树形下拉菜单的实例代码
Jul 09 jQuery
jquery实现点击弹出对话框
Feb 08 jQuery
jquery实现直播视频弹幕效果
Feb 25 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
jQuery select的操作实现代码
2009/05/06 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
js最简单的双向绑定实例讲解
2018/01/02 Javascript
React中的refs的使用教程
2018/02/13 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
JS控制下拉列表左右选择实例代码
2020/05/08 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
详解Python发送邮件实例
2016/01/10 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
Jupyter加载文件的实现方法
2020/04/14 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
元旦晚会活动总结
2014/07/09 职场文书
争先创优公开承诺书
2014/08/30 职场文书
优秀员工事迹材料
2014/12/20 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
《绝招》教学反思
2016/02/20 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
Python安装使用Scrapy框架
2022/04/12 Python