ajaxfileupload.js实现上传文件功能


Posted in Javascript onApril 19, 2019

使用ajaxfileupload.js实现上传文件功能

一、ajaxFileUpload是一个异步上传文件的jQuery插语法:$.ajaxFileUpload([options])

options参数说明:

1、url

上传处理程序地址
2、fileElementId

  文件选择框的id属性,即的id
3、secureuri

  是否启用安全提交,默认为false
4、dataType

  服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断
5、success

服务器响应成功后的处理函数 ,参数data就是服务器返回的数据
6、error

  服务器响应失败后的处理函数
7、data

  自定义参数,当有数据要和上传的文件一起传到后台处理的时候会用到。这里注意,数据格式比较严格{param:[{‘param1':'value1','param2':'value2' },{‘param1':'value3','param2':'value4' }]}, 其中单引号不能改为双引号
8、type

  提交数据的方式,一般为post

二、使用方法

第一步、先引入jquery和ajaxFileUpload插件,注意先后顺序:

<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> 
<script type= "text/javascript" src= "js/ajaxfileupload.js" ></script>

第二步、html代码

原始的,控件展示效果如下:

因为原始控件的样式无法改变,所以我们一般会让这个标签隐藏,然后点击别的标签来触发上传控件。

<input type ="file" id="ImportPicInput" name= "myfile" style=" display: none" /> 
<div class ="input-append"> 
<label for ="importPicName"> 上传原始图片:</label > 
<input type ="text" class="input-large" id= "importPicName" /> 
<a class ="btn btn-default" onclick= "$('#ImportPicInput').click();" > 打开</a> 
</div >

展现的页面效果:

第三步、js代码

在用户选择完上传图片后,需要把图片名称显示到输入框中,还需要在js文件中加入代码:

$(document).ready(function(e) { 
  $('body').on('change',$('#ImportPicInput'),function(){ 
   $( "#importPicName").val($( "#ImportPicInput").val()); 
  }); 
});

上传文件的js代码:

$.ajaxFileUpload({ 
 type: "POST", 
 url: "/toolkit/importPicFile.do", 
 data:{picParams:text},//要传到后台的参数,没有可以不写 
 secureuri : false,//是否启用安全提交,默认为false 
 fileElementId:'ImportPicInput',//文件选择框的id属性 
 dataType: 'json',//服务器返回的格式 
 async : false, 
 success: function(data){ 
  if(data.result=='success'){ 
   //coding 
  }else{ 
   //coding 
  } 
 }, 
 error: function (data, status, e){ 
  /coding 
 } 
});

第四步、java代码

@RequestMapping(value="/importPicFile.do" ,produces="text/html;charset=utf-8" ) 
 public @ResponseBody String importPicFile1(@RequestParam("picParams") String picParams, 
@RequestParam MultipartFile myfile,HttpServletRequest request){ 

   Map<String,Object> map= new HashMap<String,Object>(); 
    if(myfile.isEmpty()){ 
     map.put( "result", "error"); 
     map.put( "msg", "上传文件不能为空" ); 
   } else{ 
     String originalFilename=myfile.getOriginalFilename(); 
     String fileBaseName=FilenameUtils.getBaseName(originalFilename); 
     String floderName=fileBaseName+"_" +DateUtil.getNowTimeData(); 
     try{ 

      String genePicPath=request.getSession().getServletContext().getRealPath("/upload/" +floderName); 
       //把上传的图片放到服务器的文件夹下 
      FileUtils. copyInputStreamToFile(myfile.getInputStream(), new File(genePicPath,originalFilename)); 
       //coding 
      map.put( "result", "success"); 

     } catch (Exception e) { 
      map.put( "result", "error"); 
      map.put( "msg",e.getMessage()); 

     } 
   } 
   String result=String. valueOf(JSONObject.fromObject (map)); 
    return result; 
  }

三、注意点

(1)上文html中控件的css样式,都是用的bootstrap框架里的基本样式,也可以不用使用bootstrap框架,仅做参考。
(2)之前用的live方法,前台js报错说找不到这个方法,后来查了资料才发现,1.9以上的jquery版本已经废弃live这个方法了

$(document).ready(function(e) { 
 $('#ImportPicInput ').live( 'change', function(){ 

  }) 
});

(3)文件选择框必须要有name,即,且java代码中的变量要跟name的值保持一致,即@RequestParam MultipartFile myfile,这点非常的重要。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
Nov 11 Javascript
js选取多个或单个元素的实现代码(用class)
Aug 22 Javascript
解析Jquery的LigerUI如何实现文件上传
Jul 09 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
Jun 24 Javascript
控制台报错object is not a function的解决方法
Aug 24 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
Sep 20 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
Oct 19 Javascript
jquery中键盘事件小结
Feb 24 Javascript
jQuery实现菜单栏导航效果
Aug 15 jQuery
JS中常用的消息框总结
Feb 24 Javascript
react实现点击选中的li高亮的示例代码
May 24 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
AjaxFileUpload.js实现异步上传文件功能
Apr 19 #Javascript
读懂CommonJS的模块加载
Apr 19 #Javascript
js module大战
Apr 19 #Javascript
如何根据业务封装自己的功能组件
Apr 19 #Javascript
vue项目打包上传github并制作预览链接(pages)
Apr 19 #Javascript
vue组件之间的数据传递方法详解
Apr 19 #Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
Apr 19 #Javascript
You might like
php 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
php实现的CSS更新类实例
2014/09/22 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
在Js页面通过POST传递参数跳转到新页面详解
2017/08/25 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python控制多进程与多线程并发数总结
2016/10/26 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
Django中的用户身份验证示例详解
2019/08/07 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
学院书画协会部门岗位职责
2013/12/01 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
简单租房协议书
2014/04/09 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
年底个人总结范文
2015/03/10 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript