Spring mvc,uploadifive 文件上传实践(转自:https://segmentfault.com/a/1190000004503262)



1、前台页面: 引入js和css


全选复制放进笔记

<link type="text/css" rel="stylesheet" href="<%=basePath%>static/js/uploadifive/uploadifive.css" />
<script type="text/javascript" src="<%=basePath%>static/js/uploadifive/jquery.min.js"></script>
<script type="text/javascript" src="<%=basePath%>static/js/uploadifive/jquery.uploadifive.min.js"></script>


2、控件初始化:


全选复制放进笔记

<script type="text/javascript">
$(function() {
$('#file_upload').uploadifive({
'auto' : false,
'buttonClass': 'btn btn-primary',
'buttonText': "选择文件",
'queueID' : 'uploadqueue',
'uploadScript' : '/tools/uploadfiles',
'onUploadComplete' : function(file, data) { console.log(data); }
});
});
</script>


3、body页面内容:


全选复制放进笔记

<div id="uploadqueue">
<input id="file_upload" name="file_upload" type="file" multiple="true">
<a href="javascript:$('#file_upload').uploadifive('upload')">上传文件</a> |
<a href="javascript:$('#file_upload').uploadifive('stop')">停止上传!</a>
</div>


4、后台Controller:


全选复制放进笔记

@RequestMapping(value = "/uploadfiles")
@ResponseBody
public JSONArray uploadFile(HttpServletRequest request){

Calendar calendar=Calendar.getInstance();
List<String> filePathList = new ArrayList<String>();
String filePath= SysConstant.UPLOADPATH;
String filePathUrl=SysConstant.UPLOADPATHURL+"/"+calendar.get(Calendar.YEAR)+calendar.get(Calendar.MONTH);
filePath=filePath+File.separatorChar+calendar.get(Calendar.YEAR)+calendar.get(Calendar.MONTH);
try {
filePathList = FileUploadUtil.uploadFile(request, filePath,filePathUrl);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(Exception ex){
ex.printStackTrace();
}

if(filePathList.size() == 0){
//return "系统错误";
}
return JSONArray.fromObject(filePathList);
}


5、上传类FileUploadUtil.java


全选复制放进笔记

public class FileUploadUtil {
private static final Logger log = LoggerFactory.getLogger(FileUploadUtil.class);

public static List<String> uploadFile(HttpServletRequest request, String filePath,String filePathUrl) throws FileNotFoundException {
List<String> filePathList = new ArrayList<String>();

MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
String fileName = null;
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {

MultipartFile mf = entity.getValue();
fileName = mf.getOriginalFilename();
String newfilepath;
newfilepath = filePath + File.separatorChar + fileName;

System.out.println("newfilepath=" + newfilepath);
File dest = new File(filePath);
if (!dest.exists()) {
dest.mkdirs();
}
File uploadFile = new File(newfilepath);
if (uploadFile.exists()) {
uploadFile.delete();
}
try {

log.info("start upload file: " + fileName);
FileCopyUtils.copy(mf.getBytes(), uploadFile);
} catch (IOException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
log.info("upload failed. filename: " + fileName + e.getMessage());
return null;
}
filePathList.add(filePathUrl+"/"+fileName);
}

return filePathList;
}
}


6、配置spring-mvc.xml文件:


全选复制放进笔记

<!-- 文件上传表单的视图解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- set the max upload size100MB -->
<property name="maxUploadSize">
<value>104857600</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
</bean>


7、需要增加的jar文件:


全选复制放进笔记

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>


总结:这次上传花了一点时间,遇到几个小问题。所以留下来供大家参考。

时间: 2024-09-19 08:57:16

Spring mvc,uploadifive 文件上传实践(转自:https://segmentfault.com/a/1190000004503262)的相关文章

Spring MVC 多文件上传大小限制及异常处理

Spring MVC  多文件上传大小限制及异常处理 (包括 MaxUploadSizeExceededException 异常) 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 补充如下: h

Spring MVC 之文件上传(七)

SpringMVC同样使用了apache的文件上传组件.所以需要引入以下包: apache-commons-fileupload.jar apache-commons-io.jar 在springAnnotation-servlet.xml中配置 1 <!-- 定义文件上传解析器 --> 2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.Common

spring mvc-关于Spring mvc 向服务器上传文件报错问题

问题描述 关于Spring mvc 向服务器上传文件报错问题 Spring mvc在向服务器上传的文件的时候报错 显示系统找不到指定的路径,应该要怎么修改 解决方案 大文件上传到服务器报错的问题大文件上传到服务器报错的问题ASP.NET 上传Excel到服务器报错的问题 解决方案二: 错误粘出来看看,可能原因有很多 解决方案三: 代码是这个 @RequestMapping("/updateExcel") public String updateExcel(HttpServletRequ

mvc实现文件上传与下载

问题描述 mvc实现文件上传与下载 添加页面希望能够上传文件详情页面希望能够显示添加页面上传的文件,并且可以下载 请问如何实现,怎么将两者对应起来.查了很多资料都没有看懂,帮忙解决一下吧. 解决方案 http://www.cnblogs.com/CareySon/archive/2009/12/23/1630902.html 解决方案二: 首先你得知道,你想用哪种后台语言来处理文件的上传与下载. 解决方案三: 看你用什么框架来实现了,struts2还是springmvc?这两个都比较好用

Spring中实现文件上传

实现图片上传  用户必须能够上传图片,因此需要文件上传的功能.比较常见的文件上传组件有Commons FileUpload(http://jakarta.apache.org/commons/fileupload/a>)和COS FileUpload(http://www.servlets.com/cos),Spring已经完全集成了这两种组件,这里我们选择Commons FileUpload.  由于Post一个包含文件上传的Form会以multipart/form-data请求发送给服务器,

struts2 spring hibernate的文件上传问题

问题描述 用struts2 spring hibernate 文件上传不会做.只把图片的地址放在数据库中看了很多struts2的文件上传的例子. 看明白了.但是,三个框架一起用,就很糊涂.那位大哥帮帮我吧.整了3天,根本都不行.还是自己java的功底不好呀.我就25分了,悬赏20分.问题补充:congjl2002 大哥 又是你呀 谢谢亚你说的思路我明白.但是具体我很糊涂.怎么把地址村到数据库里亚.如果存名字和密码之类的,我会做.存地址不过呀.我把握的编码传上麻烦你帮我看看..jsp 叶面<scr

ASP.NET MVC之文件上传【一】(八)

前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public ActionResult UploadFile() { return View(); } [HttpPost] public ActionResult UploadFile(HttpPostedFileBase file) { var fileName = file.FileName; var filePath = Ser

探索Asp.net mvc 的文件上传(由浅入深)

代码下载:http://files.cnblogs.com/n-pei/mvcfileupload.zip 最近因为TeamVideo需要用到视频和图片上传功能,所以试着Google了很多资料,和大家分享下. 1.最基本的文件上传 在View界面通过Form把数据POST到控制端(Controller),Controller把文件存储到服务器,再Redirect到其他页面. View部分的代码: Controller部分需要判断是否有Post过来文件,有文件就保存,再重定向到index页面. 上

一起谈.NET技术,探索Asp.net mvc 的文件上传(由浅入深)

代码下载:http://files.cnblogs.com/n-pei/mvcfileupload.zip 最近因为TeamVideo需要用到视频和图片上传功能,所以试着Google了很多资料,和大家分享下. 1.最基本的文件上传 在View界面通过Form把数据POST到控制端(Controller),Controller把文件存储到服务器,再Redirect到其他页面. View部分的代码: Controller部分需要判断是否有Post过来文件,有文件就保存,再重定向到index页面. 上