1. 从请求中获取MultipartFile

    @RequestMapping(value="/upload", method=RequestMethod.POST)public @ResponseBody String handleFileUpload( @RequestParam("file") MultipartFile file) throws IOException{

2. 文件流处理

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;import org.apache.commons.fileupload.util.Streams;
import org.apache.commons.io.IOUtils;
import org.springframework.web.multipart.MultipartFile;public class UploadFileUtil {/*** 使用相同的名称* @param file* @param filePath* @return*/public static String handleFileUpload(MultipartFile file,String filePath){try {if(!file.isEmpty()){String name=file.getOriginalFilename();InputStream inpustream=file.getInputStream();FileOutputStream fos = new FileOutputStream(filePath+File.separator+name);Streams.copy(inpustream, fos, true);    }else{return "can not upload this file,because it is empty!";}} catch (IOException e) {return "failed to upload this file,because Stream interrupt unexpectedly";}return "upload file sucess";}/*** 重命名文件,包含后缀* @param file* @param filePath* @param fileName* @return*/public static String handleFileUpload(MultipartFile file,String filePath,String fileName){try {if(!file.isEmpty()){InputStream inpustream=file.getInputStream();FileOutputStream fos = new FileOutputStream(filePath+File.separator+fileName);Streams.copy(inpustream, fos, true);    }else{return "can not upload this file,because it is empty!";}} catch (IOException e) {return "failed to upload this file,because Stream interrupt unexpectedly";}return "upload file sucess";}/***Copy bytes from a large (over 2GB) file with same filename* @param file* @param filePath* @param fileName* @return*/public static String handleLargeFileUpload(MultipartFile file,String filePath){try {if(!file.isEmpty()){String name=file.getOriginalFilename();InputStream inpustream=file.getInputStream();FileOutputStream fos = new FileOutputStream(filePath+File.separator+name);IOUtils.copyLarge(inpustream, fos);    if(inpustream!=null){inpustream.close();}if(fos!=null){fos.close();}}else{return "can not upload this file,because it is empty!";}} catch (IOException e) {return "failed to upload this file,because Stream interrupt unexpectedly";}return "upload file sucess";}/***Copy bytes from a large (over 2GB) file with rename file* @param file* @param filePath* @param fileName* @return*/public static String handleLargeFileUpload(MultipartFile file,String filePath,String fileName){try {if(!file.isEmpty()){InputStream inpustream=file.getInputStream();FileOutputStream fos = new FileOutputStream(filePath+File.separator+fileName);IOUtils.copyLarge(inpustream, fos);    if(inpustream!=null){inpustream.close();}if(fos!=null){fos.close();}}else{return "can not upload this file,because it is empty!";}} catch (IOException e) {return "failed to upload this file,because Stream interrupt unexpectedly";}return "upload file sucess";}}

转载于:https://www.cnblogs.com/davidwang456/p/4766675.html

文件上传流式处理commons-fileupload相关推荐

  1. (8)common-upload文件上传出现org.apache.commons.fileupload.FileUploadBase$IOFileUploadException

    在使用common-upload进行文件上传时,出现了以下错误: org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: ...

  2. apache实现文件上传服务器,使用Apache的Fileupload工具实现文件上传

    这个小组件,它会帮我们解析request中的上传数据,解析后的结果是一个表单项数据封装到一个FileItem对象中.我们只需要调用FileItem的方法即可. Maven依赖 commons-file ...

  3. SpringBoot实现文件上传和下载

    文件上传需要使用到 MultipartResolver接口. Spring MVC 使用 MultipartResolver接口的实现类:CommonsMultipartResolver .Commo ...

  4. 全栈开发实战|Spring Boot文件上传与下载

    文件上传与下载是Web应用开发中常用的功能之一.接下来我们将讨论如何在Spring Boot的Web应用开发中,如何实现文件的上传与下载. 01.Spring Boot文件上传与下载 在实际的Web应 ...

  5. Spring MVC文件上传示例教程 - 单个和多个文件

    Spring MVC文件上传示例教程 - 单个和多个文件 文件上传是任何Web应用程序中非常常见的任务.我们之前已经看过如何在Servlet和Struts2文件上传中上传文件.今天我们将学习Sprin ...

  6. java fileupload 进度_SpringBoot+fileUpload获取文件上传进度

    我本人在网上找了很多关于文件上传进度获取的文章,普遍基于spring MVC 框架通过 fileUpload 实现,对于spring Boot 通过 fileUpload 实现的帖子非常少,由于小弟学 ...

  7. struts2之单个文件上传

    通过2种方式模拟单个文件上传,效果如下所示 开发步骤如下: 1.新建一个web工程,导入struts2上传文件所需jar,如下图 目录结构 2.新建Action 第一种方式 package com.l ...

  8. Struts2学习8--文件上传(单个文件上传)

    一.依赖 Struts2利用第三方文件上传框架:(Myeclispse已配置)进行封装,没有jar需自己加上. Library                                      ...

  9. SpringBoot文件上传源码解析

    一.SpringMVC文件上传源码分析前言(这部分我觉得原作者写的很好) 该如何研究SpringMVC的文件上传的源码呢? 研究源码并不是仅仅知道程序是怎样运行的,而应该从宏观的角度.不同的立场去看待 ...

最新文章

  1. 前端rem单位的正确使用姿势(转)
  2. springboot mysql时区设置_java/springboot/mysql时区问题解决方案
  3. Django congtent types应用
  4. Linux下Centos7以rpm方式离线安装MySQL5.7教程以及部分报错解决方案
  5. “小程序”的最佳入口位置--关于微信小程序的思考笔记
  6. Linux下PHP5.5编译参数详解
  7. python大众点评霸王餐_不收藏肯定后悔!大众点评前员工告诉你,如何利用点评APP吃霸王餐!...
  8. Vue3.0官方文档
  9. 《守望先锋》架构设计与网络同步 -- GDC2017 精品分享实录
  10. sh: warning: setlocale: LC_ALL: cannot change locale (zh_CN.GB18030)
  11. 共享编辑文档系统dzzoffice安装
  12. 高考助力海报|有哪些优秀的高考助力文案?
  13. 怎样批量解析手机端头条视频和封面图片并保存
  14. 如何解决苹果电脑(Macbook Pro)没有声音?
  15. RSA中的中国剩余定理(CRT)和多素数(multi-prime)
  16. DES加密算法的C++实现
  17. 自动控制原理中的MATLAB函数以及用法总结
  18. 非极大值抑制(NMS)的几种实现优化
  19. 技术分享 | 服务端接口自动化测试, Requests 库的这些功能你了解吗?
  20. 读书笔记第一篇:知乎高赞回答

热门文章

  1. php 协程 mysql_实现一个协程版mysql连接池
  2. java注解判断字段是否存在_使用注解和反射判断指定的字段不能为空
  3. pemicro识别不了驱动_usb驱动无法识别怎么办-usb驱动无法识别通常解决办法 - 河东软件园...
  4. linux mysql主主复制_MySQL主从复制与主主复制
  5. linux 打开关闭文件,Linux系统编程-文件打开关闭
  6. mysql8只从配置_mysql8的配置优化
  7. html的vue项目怎么兼容ie,vue 项目在ie浏览器的兼容问题
  8. 游标卡尺尺身的刻度间距为_【物业】游标卡尺使用及读数方法
  9. 用fpda 写一个risc-v
  10. c++枚举类型(二) 命名空间