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

发布时间 - 2026-01-11 00:30:14    点击率:

摘要

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

效果

调用方式

$("#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插件imgAreaSelect实现图片上传裁剪(放大缩小)  # jQuery插件uploadify实现ajax效果的图片上传  # jQuery实现图片上传和裁剪插件Croppie  # jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享  # Jquery uploadify图片上传插件无法上传的解决方法  # jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)  # 图片上传插件jquery.uploadify详解  # jquery 图片上传按比例预览插件集合  # 弹出  # 自定义  # 上传  # 链式  # 表单  # 小编  # 上传图片  # 在此  # 给大家  # 如果不是  # 定了  # 所述  # 给我留言  # 感谢大家  # 默认值  # 图片上传  # 上传文件  # 有任何  # opts  # extend 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 制作公司内部网站有哪些,内网如何建网站?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何自定义建站之星模板颜色并下载新样式?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  免费网站制作appp,免费制作app哪个平台好?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  Python面向对象测试方法_mock解析【教程】  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  如何用wdcp快速搭建高效网站?  如何在Windows服务器上快速搭建网站?  公司门户网站制作流程,华为官网怎么做?  Python进程池调度策略_任务分发说明【指导】  Laravel如何实现API速率限制?(Rate Limiting教程)  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  如何在景安云服务器上绑定域名并配置虚拟主机?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何用西部建站助手快速创建专业网站?  如何快速搭建高效可靠的建站解决方案?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何在企业微信快速生成手机电脑官网?  Python制作简易注册登录系统  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何快速生成橙子建站落地页链接?  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  在线制作视频网站免费,都有哪些好的动漫网站?  如何在万网ECS上快速搭建专属网站?  如何用免费手机建站系统零基础打造专业网站?  EditPlus中的正则表达式实战(6)  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  无锡营销型网站制作公司,无锡网选车牌流程?  Laravel storage目录权限问题_Laravel文件写入权限设置  微信小程序 闭包写法详细介绍  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  如何在腾讯云服务器上快速搭建个人网站?  nginx修改上传文件大小限制的方法  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  重庆市网站制作公司,重庆招聘网站哪个好?  Laravel如何处理文件下载请求?(Response示例)  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  javascript基本数据类型及类型检测常用方法小结