当前所在位置: 首页 > 生活常识

SpringMVC上传文件FileUpload使用方法详解

2025-11-14 本站作者 【 字体:

SpringMVC上传文件FileUpload使用方法详解

更新时间:2017年11月20日 14:28:47   作者:http://blog.csdn.net/hundan_520520/article/details/54880319

这篇文章主要为大家详细介绍了SpringMVC上传文件FileUpload的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了SpringMVC上传文件FileUpload的具体代码,供大家参考,具体内容如下

我是在已经搭建好的springMVC环境下,maven工程中的pom.xml所需要的jar包(其中spring上传文件的两个主要jar:commons-fileupload.jar和commons-io.jar):


  4.0.0
  com.zhihua
  SpringMVC_FileUpload
  war
  0.0.1-SNAPSHOT
  SpringMVC_FileUpload Maven Webapp
  http://maven.apache.org
  
    
    3.2.8.RELEASE
    
    4.10
  
  
    
      junit
      junit
      3.8.1
      test
    
    
    
      commons-fileupload
      commons-fileupload
      1.3.1
    
    
    
      org.springframework
      spring-core
      ${spring.version}
    
    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    
      org.springframework
      spring-context
      ${spring.version}
    
    
      org.springframework
      spring-context-support
      ${spring.version}
    
    
      org.springframework
      spring-aop
      ${spring.version}
    
    
      org.springframework
      spring-aspects
      ${spring.version}
    
    
      org.springframework
      spring-tx
      ${spring.version}
    
    
      org.springframework
      spring-jdbc
      ${spring.version}
    
    
      org.springframework
      spring-web
      ${spring.version}
    
    
    
      org.springframework
      spring-test
      ${spring.version}
      test
    
    
    
      jstl
      jstl
      1.2
    
    
    
      javax.servlet
      javax.servlet-api
      3.0.1
      provided
    
    
    
      javax.servlet.jsp
      jsp-api
      2.1
      provided
    
  
  
    SpringMVC_FileUpload
  

在spring-mvc.xml中添加代码:


  
    
    
    
  

前端页面(fileUpload.jsp)和上传成功返回页面(success.jsp):

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>




springmvc-文件上传



  

采用流的方式上传文件


采用multipart提供的file.transfer方法上传文件1


采用multipart提供的file.transfer方法上传文件2


使用spring MVC提供的方法上传文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>




Insert title here



  

文件上传成功!

controller 的代码:

package com.zhihua.controller;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
@Controller
@RequestMapping("/fileUpload")
public class FileUploadController {
  /**
   * 通过流的方式上传文件
   * @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象
   * <请替换成功能描述> 
* <请替换成详细描述> * @param file * @return * @author caizh * @since [1.0.0] * @version [1.0.0,2017年2月5日] */ @RequestMapping("/upload_01") public String fileUpload_1(@RequestParam("file_01")CommonsMultipartFile file)throws IOException { //用来检测程序运行时间 long startTime = System.currentTimeMillis(); System.out.println("fileName:"+file.getOriginalFilename()); try{ //获取输出流 OutputStream os = new FileOutputStream("E:/"+new Date().getTime()+file.getOriginalFilename()); //获取输入流CommonsMultipartFile中可以直接得到文件的流 InputStream is = file.getInputStream(); int temp; //一个一个字节的读取并写入 while((temp=is.read())!=(-1)){ os.write(temp); } os.flush(); os.close(); is.close(); }catch(Exception e){ e.printStackTrace(); } long endTime = System.currentTimeMillis(); System.out.println("方法一的运行时间:"+String.valueOf(endTime-startTime)+"ms"); return "view/success"; } /** * 采用file.Transto 来保存上传的文件 * <请替换成功能描述>
* <请替换成详细描述> * @param file * @return * @throws IOException * @author caizh * @since [1.0.0] * @version [1.0.0,2017年2月5日] */ @RequestMapping("/upload_02") public String fileUpload_2(@RequestParam("file_02") CommonsMultipartFile file)throws IOException { long startTime = System.currentTimeMillis(); System.out.println("fileName:"+file.getOriginalFilename()); String path = "E:/"+new Date().getTime()+file.getOriginalFilename(); File newFile = new File(path); //通过CommonsMultipartFile 的方法直接写文件 file.transferTo(newFile); long endTime = System.currentTimeMillis(); System.out.println("方法二的运行时间:"+String.valueOf(endTime-startTime)+"ms"); return "view/success"; } /** * 使用MultipartFile上传文件 * <请替换成功能描述>
* <请替换成详细描述> * @param file * @return * @author caizh * @since [1.0.0] * @version [1.0.0,2017年2月5日] */ @RequestMapping("/upload_03") public String fileUpload_3(@RequestParam(value="file_03",required=false)MultipartFile file, HttpServletRequest request){ String path = request.getSession().getServletContext().getRealPath("upload"); System.out.println(path); String fileName = file.getOriginalFilename(); File targetFile = new File(path,fileName); if(!targetFile.exists()){ targetFile.mkdirs(); } //保存 try { file.transferTo(targetFile); }catch(Exception e){ e.printStackTrace(); } return "view/success"; } /** * 采用spring提供的上传文件的方法 * <请替换成功能描述>
* <请替换成详细描述> * @param request * @return * @throws IllegalStateException * @throws IOException * @author caizh * @since [1.0.0] * @version [1.0.0,2017年2月5日] */ @RequestMapping("/upload_spring") public String springUpload(HttpServletRequest request)throws IllegalStateException, IOException{ long startTime = System.currentTimeMillis(); //将当前上下文初始化给 CommonsMutipartResolver (多部分解析器) CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); //检查form中是否有enctype="multipart/form-data" if(multipartResolver.isMultipart(request)) { //将request变成多request MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request; //获取multiRequest中所有的文件名 Iterator iter = multiRequest.getFileNames(); while(iter.hasNext()){ //一次遍历所有的文件 MultipartFile file = multiRequest.getFile(iter.next().toString()); if(file!=null){ String path = "E:/springUpload"+file.getOriginalFilename(); //上传 file.transferTo(new File(path)); } } } long endTime = System.currentTimeMillis(); System.out.println("方法三的运行时间:"+String.valueOf(endTime-startTime)+"ms"); return "view/success"; } }

好了,全部代码都给出了,博主是测试成功了,感兴趣的朋友可以去比较不同上传方式的效率!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

阅读全文
加载中~
相关推荐

视频丨从“外出务工”到“就近就业” 农民工就业渠道更加多元

视频丨从“外出务工”到“就近就业” 农民工就业渠道更加多元
记者从人力资源社会保障部了解到,今年以来,国家持续拓宽农民工群体就业渠道,通过订...

喉咙干痒有异物感,咳不出又咽不下?小心是慢性咽炎在作祟!

喉咙干痒有异物感,咳不出又咽不下?小心是慢性咽炎在作祟!
总觉得喉咙里有东西,咳不出来又咽不下去,早上刷牙还恶心干呕——很多人都有过这样的...

咽炎总复发?你可能没避开这些刺激

咽炎总复发?你可能没避开这些刺激
平时总感觉喉咙里卡着东西,咳不出也咽不下;开会说多了话,喉咙就干痒灼痛,声音变得...

二手房交易流程及税费(仅供参考)

二手房交易流程及税费(仅供参考)
操作流程查册——签三方约——签件、送银行审批——贷款申请成功——业主报税——交...

幸福的一家人作文(精选15篇)

幸福的一家人作文(精选15篇)
幸福的一家人作文1  我生活在一个快乐的家庭,我的家里有爸爸、妈妈和我,还有妹妹...

健康生活方式的10条“金标准”!赶紧对照一下

健康生活方式的10条“金标准”!赶紧对照一下
一个人的身体是否健康长寿,一些常见指标的数值是最直接的判断。维持身体各项指标正常...

关于潮州市光正实验学校调整学费收费标准(拟)公开征求意见的公告

关于潮州市光正实验学校调整学费收费标准(拟)公开征求意见的公告
为促进我区民办教育可持续发展,根据潮州市光正实验学校的申请

潮州市枫溪阳光实验小学2017年秋季一年级新生招生简章

潮州市枫溪阳光实验小学2017年秋季一年级新生招生简章
潮州市枫溪阳光实验小学2017年秋季一年级新生招生简章学校简介枫溪阳光实验学校是...

科普添动力,实现“双碳”目标更可期

科普添动力,实现“双碳”目标更可期
9月15日,以“喜迎二十大,科普向未来”为主题的全国科普日活动在全国各地启动,将...

关于加强义务教育阶段学科类校外培训收费监管的通知

关于加强义务教育阶段学科类校外培训收费监管的通知
各省、自治区、直辖市、新疆生产建设兵团发展改革委、教育厅(教委、教育局)、市场监...
本站访客:68709
1097476955
服务热线

服务热线

18951535724

18951535724
返回顶部