Excel文件上传,解析,下载(一 文件上传,使用MultipartFile来实现)
2016-03-03 11:29
901 查看
文件上传我使用的是jquery的一个插件"ajaxfileupload.js",使用方式详见下面的一种方式,使用file类型的input,同时需要给button绑定事件,这边使用的"ajaxfileupload.js"当中定义的ajax请求,到后台。
后台当中的代码使用的是Spring 的mvc框架。
使用MultipartFile的时候还需要在xml文件当中进行配置
其中属性详解:
defaultEncoding="UTF-8" 是请求的编码格式,默认为iso-8859-1
maxUploadSize="5400000" 是上传文件的大小,单位为字节
uploadTempDir="fileUpload/temp" 为上传文件的临时路径
下面是关于MultipartFile方法的一些介绍,图片来自Spring官网的一些介绍
1.getBytes() 以二进制数组返回文件的内容
2.getContentType() 以String类型返回文件的内容,该方法存在一定的歧义,我没有尝试过,像那种图片,word文件类型的数据不知这边是如何处理的
3.getInputStream() 获得输入流
4.getName() 获取表单中文件组件的名字
5.getOriginalFilename()获得在客户端文件系统当中初始化的名称
6.getSize() 获得文件的大小
7.isEmpty() 判断文件是否为空
8.transferTo() 转换成文件
附上Spring的官方API文档
https://docs.spring.io/spring/docs/1.2.x/javadoc-api/org/springframework/web/multipart/MultipartFile.html
<div id="fileupload"> <input type="file" id="file" name="file" /> <input type="button" id="upload" value="上传文件" /> </div>
<script type="text/javascript" src="<%=path%>/js/jquery/jquery-1.5.1.js"></script> <script type="text/javascript" src="<%=path%>/js/accnet/common/ajaxfileupload.js"></script>
//文件上传 $(function() { $("#upload").click(ajaxFileUpload); }); function ajaxFileUpload() { var url = "/spare/flow.spr?"; var method = "method=fileUpload" $.ajaxFileUpload({ url : contextPath + url + method, secureuri : false, fileElementId : 'file', dataType : 'text', success : function(data, status) { if (data == "exist") { alert("该文件已经存在请勿重复上传"); } if (data == "success") { alert("文件上传成功"); } if (data == "fail") { alert("文件上传失败,请重新上传"); } }, error : function() { } }); }
后台当中的代码使用的是Spring 的mvc框架。
使用MultipartFile的时候还需要在xml文件当中进行配置
<!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver --> <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8" p:maxUploadSize="5400000" p:uploadTempDir="fileUpload/temp" > </beans:bean>
其中属性详解:
defaultEncoding="UTF-8" 是请求的编码格式,默认为iso-8859-1
maxUploadSize="5400000" 是上传文件的大小,单位为字节
uploadTempDir="fileUpload/temp" 为上传文件的临时路径
@RequestMapping(params = "method=fileUpload") public void fileUpload( @RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, HttpServletResponse response) { String path = request.getSession().getServletContext() .getRealPath("upload"); String fileName = file.getOriginalFilename(); File targetFile = new File(path, fileName); //设置文件保存的路径 提供给后面的解析使用 request.getSession().setAttribute("fileNameSpare", fileName); request.getSession().setAttribute("filePathSpare", path); if (targetFile.exists()) { super.flushResponse(response, "exist"); } else { try { file.transferTo(targetFile); super.flushResponse(response, "success"); } catch (Exception e) { logger.error(e.getMessage()); super.flushResponse(response, "fail"); } } }
下面是关于MultipartFile方法的一些介绍,图片来自Spring官网的一些介绍
1.getBytes() 以二进制数组返回文件的内容
2.getContentType() 以String类型返回文件的内容,该方法存在一定的歧义,我没有尝试过,像那种图片,word文件类型的数据不知这边是如何处理的
3.getInputStream() 获得输入流
4.getName() 获取表单中文件组件的名字
5.getOriginalFilename()获得在客户端文件系统当中初始化的名称
6.getSize() 获得文件的大小
7.isEmpty() 判断文件是否为空
8.transferTo() 转换成文件
附上Spring的官方API文档
https://docs.spring.io/spring/docs/1.2.x/javadoc-api/org/springframework/web/multipart/MultipartFile.html
相关文章推荐
- 聚焦Web设计
- iOS开发学习_OC基础_(一).类、对象和方法(1)
- hibernate discriminator
- umeng分享到QQ,分享成功,回调失败。
- @SuppressLint("NewApi")和@TargetApi()的区别
- Java中静态成员
- js 三元表达式
- 设计模式(10)——组合模式(Composite Pattern)
- 通过javascript 获取当前地理位置 所在城市
- Centos 6.7 下安装git 各种累心折腾
- Java中的静态内部类与非静态内部类的区别
- echarts .NET类库开源
- mysql 在row模式下truncate 与 delete 二进制日志记录的差异
- java加时间
- mysqli报错(HY000/2002)
- Javascript进阶篇——( JavaScript内置对象---下)--Math对象---笔记整理
- 伪类 伪元素 如何区分
- [Theano] Theano初探
- ECLIPSE下SVN的创建分支/合并/切换使用
- Spark Streaming和Kafka整合是如何保证数据零丢失