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 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
jQuery实现的简单在线计算器功能
May 11 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
jQuery实现点击关注和取消功能
Jul 03 jQuery
jQuery实现上传图片前预览效果功能
Aug 03 jQuery
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 jQuery
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
JQuery事件委托原理与用法实例分析
May 13 jQuery
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
JQuery属性操作与循环用法示例
May 15 jQuery
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 jQuery
Jquery $.map使用方法实例详解
Sep 01 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中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
轻松掌握JavaScript代理模式
2016/08/26 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
JS数组操作之增删改查的简单实现
2017/08/21 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
Python自定义简单图轴简单实例
2018/01/08 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
python 实现多线程下载视频的代码
2019/11/15 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
什么是python类属性
2020/06/10 Python
canvas烟花特效锦集
2018/01/17 HTML / CSS
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
面向对象编程的优势是什么
2015/12/17 面试题
应聘医药销售自荐书范文
2014/02/08 职场文书
心得体会的写法
2014/09/05 职场文书
三好学生事迹材料
2014/12/24 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
六年级情感作文之500字
2019/10/23 职场文书
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
Python机器学习之决策树和随机森林
2021/07/15 Javascript
Pandas数据结构之Series的使用
2022/03/31 Python
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android