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 工具函数学习资料
Apr 29 Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
Dec 20 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
Mar 25 Javascript
vue 中directive功能的简单实现
Jan 05 Javascript
基于vue.js无缝滚动效果
Jan 25 Javascript
JavaScript实现星级评价效果
May 17 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
Sep 28 Javascript
深入浅析vue全局环境变量和模式
Apr 28 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 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
sqlyog 中文乱码问题的设置方法
2008/10/19 PHP
PHP中英混合字符串截取函数代码
2011/07/17 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
Js 中debug方式
2010/02/07 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
webpack中引用jquery的简单实现
2016/06/08 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
pandas计数 value_counts()的使用
2019/06/24 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
python 创建一维的0向量实例
2019/12/02 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
酒店经理职责
2014/01/30 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
消防安全责任书
2014/04/14 职场文书
大学新闻系求职信
2014/06/03 职场文书
公共场所禁烟标语
2014/06/25 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
工作检讨书怎么写
2015/01/23 职场文书
可怜妈妈观后感
2015/06/09 职场文书
2016年优秀共产党员先进事迹材料
2016/02/29 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS