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 相关文章推荐
iis6+javascript Add an Extension File
Jun 13 Javascript
js 替换
Feb 19 Javascript
js option删除代码集合
Nov 12 Javascript
通过Javascript读取本地Excel文件内容的代码示例
Apr 08 Javascript
深入理解javascript原型链和继承
Sep 23 Javascript
Js遍历键值对形式对象或Map形式的方法
Aug 08 Javascript
Node.js中的child_process模块详解
Jun 08 Javascript
axios向后台传递数组作为参数的方法
Aug 11 Javascript
js实现列表向上无限滚动
Jan 13 Javascript
js面向对象之实现淘宝放大镜
Jan 15 Javascript
原生JavaScript实现拖动校验功能
Sep 29 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
Nov 04 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下读取文本文件的代码
2008/07/02 PHP
通俗易懂的php防注入代码
2010/04/07 PHP
解析csv数据导入mysql的方法
2013/07/01 PHP
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
使用axios发送post请求,将JSON数据改为form类型的示例
2019/10/31 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
Python工程师面试题 与Python Web相关
2016/01/14 Python
利用Python实现图书超期提醒
2016/08/02 Python
Python实现破解猜数游戏算法示例
2017/09/25 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Python collections模块使用方法详解
2019/08/28 Python
Django实现随机图形验证码的示例
2020/10/15 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
上班上网检讨书
2014/01/29 职场文书
英语老师推荐信
2014/02/26 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
安全例会汇报材料
2014/08/23 职场文书