一 : applicationContext.xml中:必须声明不然获取不到
<!-- 上传文件的配置 -->
<bean
id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property name="maxUploadSize" value="1024000"></property>

<property name="defaultEncoding" value="utf-8"/><!--属性:编码-->
</bean>

二 : 前台jsp页面
<!-- //存放选择文件的 图片按钮的 Div -->
<div id="uploadfileQueue"></div>
<input type="file" id="file_upload">
<img id="add_img" width="100" height="100"/>
<input type="text" name="user_img" >

三 : js代码:
$(document).ready(function() {

$("#file_upload").uploadify({

//是否自动上传 true or false
'auto':true,
//超时时间上传成功后,将等待服务器的响应时间。
//在此时间后,若服务器未响应,则默认为成功(因为已经上传,等待服务器的响应) 单位:秒
'successTimeout':99999,
//附带值 JSON对象数据,将与每个文件一起发送至服务器端。
//如果为动态值,请在onUploadStart()中使用settings()方法更改该JSON值
/* 'formData':{ //可以不写
'user.username':'',
'user.age':''
}, */
'onUploadStart': function(file) {

$("#file_upload").uploadify(
"settings"
);
/* {'user.username':name,'user.age':age});*/
},
//flash
'swf': "<%=request.getContextPath()%>/uploadify/uploadify.swf",
//文件选择后的容器div的id值
'queueID':'uploadfileQueue',
//将要上传的文件对象的名称 必须与后台controller中抓取的文件名保持一致
'fileObjName':'headerImage',
//上传地址访问后台action路径
'uploader':'<%=request.getContextPath()%>/photosAction/uploadFile.do',

//浏览将要上传文件按钮的背景图片路径
//'buttonImage':'<%=request.getContextPath()%>/uplodify/background.jpg',

//浏览按钮的宽度
'width':'100',

//浏览按钮的高度
'height':'32',

//在浏览窗口底部的文件类型下拉菜单中显示的文本
'fileTypeDesc':'支持的格式:',

//允许上传的文件后缀
'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png', //有哪些??

/*上传文件的大小限制允许上传文件的最大 大小。 这个值可以是一个数字或字 符串。
如果它是一个字符串,它接受一个单位(B, KB, MB, or GB)。
默认单位为KB您可以将此值设置为0 ,没有限制,
单个文件不允许超过所设置的值 如果超过 onSelectError时间被触发*/
'fileSizeLimit':'1024KB',
'buttonText': '上传头像',
//允许上传的文件的最大数量。当达到或超过这个数字,onSelectError事件被触发。
'queueSizeLimit' : -1,

//选择上传文件后调用
'onSelect' : function(file) {
// alert("123");
},
//返回一个错误,选择文件的时候触发
'onSelectError':function(file, errorCode, errorMsg){
switch(errorCode) {
case -100:
alert("上传的文件数量已经超出系统限制的"
+$('#file_upload').uploadify('settings','queueSizeLimit')+"个文件!");
break;

case -110:
alert("文件 ["+file.name+"] 大小超出系统限制的"
+$('#file_upload').uploadify('settings','fileSizeLimit')+"大小!");
break;

case -120:
alert("文件 ["+file.name+"] 大小异常!");
break;

case -130:
alert("文件 ["+file.name+"] 类型不正确!");
break;
}
},
//上传到服务器,服务器返回相应信息到data里
'onUploadSuccess':function(file, data, response){
//alert(data);
$("#add_img").attr("src","<%=request.getContextPath()%>/"+data)
//alert("<%=request.getContextPath()%>/"+data)
$("[name='user_img']").val(data)
},
//当单个文件上传出错时触发
'onUploadError': function (file, errorCode, errorMsg, errorString) {
alert("上传失败");
}
});

});
四 ; controller:
@RequestMapping(value="/uploadFile",method=RequestMethod.POST)
@ResponseBody
public void uploadFile(@RequestParam("headerImage")CommonsMultipartFile headerImage,HttpServletRequest req,HttpServletResponse response) throws IOException{

String path = FileUtil.upFile(headerImage,req,response,"pppp");
try {
response.setCharacterEncoding("utf-8");
response.getWriter().write(path);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

注意:有时候需要使用到File类型的文件
那么就需要将CommonsMultipartFile 类型的转换为
File类型的

DiskFileItem fi = (DiskFileItem)image.getFileItem();
File file = fi.getStoreLocation();

二 : 使用MultipartFile上传文件(多文件)
Controller层:
@RequestMapping("filesUpload")
public String filesUpload(@RequestParam("files") MultipartFile[] files) {
//判断file数组不能为空并且长度大于0
if(files!=null&&files.length>0){
//循环获取file数组中得文件
for(int i = 0;i<files.length;i++){
MultipartFile file = files[i];
//保存文件
saveFile(file);
}
}
// 重定向
return "redirect:/list.html";
}
上传文件
private boolean saveFile(MultipartFile file) {
// 判断文件是否为空
if (!file.isEmpty()) {
try {
// 文件保存路径
String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
+ file.getOriginalFilename();
// 转存文件
file.transferTo(new File(filePath));
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}

三 : spring-uploadify上传文件的更多相关文章

  1. Uploadify 上传文件插件详解

    Uploadify 上传文件插件详解 Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.不过官方提供的实例时php版本的,本文将详细介绍Uploadify在Aspnet中 ...

  2. SpringMVC+jquery.uploadify 上传文件

    前言 以前用Asp.net MVC+uploadify上传文件,最近学习SpringMVC,所以就用SpringMVC+uploadify做个上传文件的demo. 刚开始用form表单的方式提交,在C ...

  3. Spring Boot(十七):使用Spring Boot上传文件

    Spring Boot(十七):使用Spring Boot上传文件 环境:Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0 一.pom包配置 <parent> ...

  4. Spring MVC上传文件

    Spring MVC上传文件 1.Web.xml中加入 <servlet> <servlet-name>springmvc</servlet-name> <s ...

  5. Spring MVC 上传文件

    Spring MVC上传文件需要如下步骤: 1.前台页面,form属性 method设置为post,enctype="multipart/form-data"  input的typ ...

  6. springboot(十七):使用Spring Boot上传文件

    上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9. ...

  7. uploadify上传文件(2)--基础语法

    隔了好久,因为最近搬家,离开从小生活的城市,来到杭州.找工作.找房子等诸多事宜耽误了这篇文章许久.今天难得闲暇在旅馆中完成uploadify上传文件系列的第二篇--uploadify使用的基础语法. ...

  8. (转)Spring Boot(十七):使用 Spring Boot 上传文件

    http://www.ityouknow.com/springboot/2018/01/12/spring-boot-upload-file.html 上传文件是互联网中常常应用的场景之一,最典型的情 ...

  9. 使用Spring Boot上传文件

    原文:http://www.cnblogs.com/ityouknow/p/8298344.html 上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spri ...

  10. MVC3+jquery Uploadify 上传文件

    最近做项目用到了上传图片的功能,以前也写过这类代码,不过都是用传统的file标签,今天整理一个好用的插件Uploadify..都做了一些注释,一看便知. 可以去官网下载最新的:Uploadify下载地 ...

随机推荐

  1. 支持各种特殊字符的 CSV 解析类 (.net 实现)(C#读写CSV文件)

    CSV是一种十分简洁的数据结构,在DOTNET平台实际使用中发现微软官方并没有提供默认的方法,而网上好多例子发现实现并不严谨甚至一些含有明显错误,所以后面自己实现了一个读写工具类,这里发出来希望方便后 ...

  2. bzoj 3331: [BeiJing2013]压力

    Description 如今,路由器和交换机构建起了互联网的骨架.处在互联网的骨干位置的 核心路由器典型的要处理100Gbit/s的网络流量.他们每天都生活在巨大的压力 之下. 小强建立了一个模型.这 ...

  3. nova创建虚拟机源码分析系列之八 compute创建虚机

    /conductor/api.py _build_instance()  /conductor/rpcapi.py  _build_instance() 1 构造一些数据类型2 修改一些api版本信息 ...

  4. C#中Abstract和Virtual[转载]

    原文:http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的使用 ...

  5. Sublime Text 2 Plugin Installation

    For Package Control installation, see the Installation Guide.   To install Emmet(ex Zen Coding), do ...

  6. [编织消息框架][JAVA核心技术]动态代理应用11-水平扩展实现

    由于示例,远程服务地址配置在properties文件,通过QMConfig类加载,最优方式是上节介绍过,放在共享内存上,只需要维护一份数据即可,如放在redis上 /** 服务地址<servic ...

  7. esp8266 SDK开发之环境搭建

    最近在弄这个WiFi模块,发现网上SDK开发方面的资料很少,发现了一套视频教程,不过主讲人的讲课方式实在受不了.对基于SDK开发感兴趣的同学可以通过本帖在Ubuntu系统上通过Eclipes搭建开发环 ...

  8. 读书笔记:《HTML5开发手册》-- 现存元素的变化

    继续学习HTML5语义化的内容,今天主要介绍一下,HTML5之前的元素经HTML5规范后的语义及一些使用示例. 一.cite HTML5对cite元素的定义进行了很大的修改,在HTML4中,cite元 ...

  9. 使用 BeanUtils 报错解决记录

    在使用BeanUtils.populate方法时,报错如下: java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHa ...

  10. linux系统编程快速定位头文件的技巧之强大的grep命令

    这个技巧来自于我的实际开发碰到的: inet_addr这个函数用于把ip地址转成网络字节序,他的原型:in_addr_t inet_addr(const char *cp); 返回值为一个in_add ...