Excel文件上传,解析,下载(一 文件上传,使用MultipartFile来实现)

文件上传我使用的是jquery的一个插件"ajaxfileupload.js",使用方式详见下面的一种方式,使用file类型的input,同时需要给button绑定事件,这边使用的"ajaxfileupload.js"当中定义的ajax请求,到后台。

<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" 为上传文件的临时路径

 1 @RequestMapping(params = "method=fileUpload")
 2     public void fileUpload(
 3             @RequestParam(value = "file", required = false) MultipartFile file,
 4             HttpServletRequest request, HttpServletResponse response) {
 5         String path = request.getSession().getServletContext()
 6                 .getRealPath("upload");
 7         String fileName = file.getOriginalFilename();
 8         File targetFile = new File(path, fileName);
 9         //设置文件保存的路径 提供给后面的解析使用
10         request.getSession().setAttribute("fileNameSpare", fileName);
11         request.getSession().setAttribute("filePathSpare", path);
12         if (targetFile.exists()) {
13             super.flushResponse(response, "exist");
14         } else {
15             try {
16                 file.transferTo(targetFile);
17                 super.flushResponse(response, "success");
18             } catch (Exception e) {
19                 logger.error(e.getMessage());
20                 super.flushResponse(response, "fail");
21             }
22         }23     }

下面是关于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

时间: 2024-10-11 13:24:29

Excel文件上传,解析,下载(一 文件上传,使用MultipartFile来实现)的相关文章

Eclipse 上传 删除 下载 分析 hdfs 上的文件

本篇讲解如何通过Eclipse 编写代码去操作分析hdfs 上的文件. 1.在eclipse 下新建Map/Reduce Project项目.如图:  项目建好后,会默认加载一系列相应的jar包. 下面还有很多包. 2.我们新建Java 类就可以了.代码如下: package org.hadoop.examples; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOExcep

php 上传文件实例 上传并下载word文件

上传界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Con

Linux命令行上传本地文件到服务器 、 下载服务器文件到本地

sh使用命令: scp 将本地文件上传至服务器 第一个是本地文件的路径/文件名, 例如 ./index.tar.gz  . index.html . bg.png 等 第二个是要上传到的服务器的位置  例如  root@39.106.144.90:/var/www scp path/filename userName@sseverName:path 如果是要下载服务器的文件到本地 则调换两个位置就可以 scp userName@sseverName:path path/filename 如果操作

农行掌上银行app下载|农行掌上银行app安卓版下载

农行掌上银行App是我非常喜欢的软件,软件可以银行账户查询,账户管理功能,信用卡使用情况的一个软件,开通手机农行银行才能使用哦,可以满足客户自由,方便,快捷的网上金融需求.并且能办理转账服务.缴费服务.定活互转.基金买卖.理财产品.密码管理.双利丰.信用卡服务.商旅服务.手机商城.农行资讯等服务非常的方便快捷.农行掌上银行app下载链接农行掌上银行app是中国农业银行开发的一款能在手机上查询银行账户和账户功能的安卓工具,但并不是什么账户都能用的,必须是农业银行注册用户才能使用,用户只需要绑定银行

ABAP 上传、下载请求文件

*&---------------------------------------------------------------------* *& REPORT  Z_UP_DOWN_REQUEST *& *&---------------------------------------------------------------------* *& *& *&-----------------------------------------

Java利用 ganymed-ssh2-build.jar来上传文件到linux以及下载linux文件以及执行linux shell命令

package api; import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;import java.io.InputStream;import org.apache.log4j.*;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.SCPClient;import ch.ethz.ssh2.Session;impor

C# Web 下载excel文件后直接导入下载的文件报错的问题

下载代码如下: System.Web.HttpContext.Current.Response.Clear(); System.Web.HttpContext.Current.Response.ClearHeaders(); System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");System.Web.HttpContext.Current.R

使用Loadrunner进行文件的上传和下载

最近使用loadrunner中需要录制文件的上传和下载,上传功能模块利用录制可以直接实现,下载无法实现,在网上找到了一段代码,自己动手试验了下,发现没有用 辛苦找到的,还是记录下吧 (1)LoadRunner上传文件 web_submit_data("importStudent.do", "Action=https://testserver/console/importStudent.do", "Method=POST", "EncTy

JavaWeb学习总结(五十)——文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru

深入分析JavaWeb Item40 -- 文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,stru