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 相关文章推荐
js使用正则实现ReplaceAll全部替换的方法
Aug 22 Javascript
javascript获取当前鼠标坐标的方法
Jan 10 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
Jun 27 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
JavaScript与java语言有什么不同
Sep 22 Javascript
jQuery实现移动端手机商城购物车功能
Sep 24 Javascript
jquery实现多次上传同一张图片
Jan 09 Javascript
Vue中定义全局变量与常量的各种方式详解
Aug 23 Javascript
js input输入百分号保存数据库失败的解决方法
May 26 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
May 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
使用PHP的日期与时间函数技巧
2008/04/24 PHP
php读取msn上的用户信息类
2008/12/05 PHP
php中stdClass的用法分析
2015/02/27 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jquery animate图片模向滑动示例代码
2011/01/26 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
Mac下安装vue
2018/04/11 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
vue实现图片上传功能
2020/05/28 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
python读写LMDB文件的方法
2018/07/02 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
python3 使用openpyxl将mysql数据写入xlsx的操作
2020/05/15 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
selenium如何定位span元素的实现
2021/01/13 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
小区门卫工作职责
2013/12/14 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
冬季施工防火方案
2014/05/17 职场文书
python pyhs2 的安装操作
2021/04/07 Python