Java Spring文件上传,Java文件上传,Java通用文件上传
================================
©Copyright 蕃薯耀 2018年9月20日
http://fanshuyao.iteye.com/
一、文件上传主代码:
/** * 通用文件上传 * @param request HttpServletRequest * @param dirPath String 文件的绝对目录(c:/a/b/)或者相对路径的目录(aa/bb/) */ public List<FileBean> uploadFile(HttpServletRequest request, String dirPath){ List<FileBean> files = new ArrayList<FileBean>(); try{ CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); if(commonsMultipartResolver.isMultipart(request)){ //强制转换需要在xml配置文件上传解析bean:CommonsMultipartResolver,且bean的id必须是multipartResolver MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request; @SuppressWarnings("unchecked") Iterator<String> fileNames = multipartHttpServletRequest.getFileNames(); logger.info("=====dirPath="+ dirPath); String defaultDir = "H:/scan/ghyw/"; if(!StringUtils.isBlank(dirPath)){ dirPath = dirPath.trim(); if(dirPath.indexOf(":") > -1){ defaultDir = dirPath; }else{ defaultDir = defaultDir + dirPath; } String lastCode = defaultDir.substring(defaultDir.length() - 1); if(!"/".equals(lastCode)){ defaultDir = defaultDir + "/"; } File dir = new File(defaultDir); if(!dir.exists()){ dir.mkdirs(); } } logger.info("=====dirPath last="+ defaultDir); MultipartFile multipartFile = null; FileBean fileBean = null; while(fileNames.hasNext()){ multipartFile = multipartHttpServletRequest.getFile(fileNames.next()); String originalName = multipartFile.getOriginalFilename(); if(!StringUtils.isBlank(originalName)){ originalName = new String(originalName.getBytes(), "UTF-8"); } fileBean = new FileBean(); String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String suffix = originalName.substring(originalName.lastIndexOf(".")); fileBean.setSuffix(suffix); fileBean.setFileName(uuid + suffix); fileBean.setOriginalName(originalName); fileBean.setFileSize(multipartFile.getSize()/1024 + "KB"); fileBean.setFileType(multipartFile.getContentType()); String absolutePath = defaultDir + uuid + suffix; fileBean.setAbsolutePath(absolutePath); FileCopyUtils.copy(multipartFile.getBytes(), new FileOutputStream(absolutePath)); files.add(fileBean); logger.info("=====multipartFile file name = "+ originalName); logger.info("=====multipartFile file name last = "+ fileBean.getFileName()); } } }catch(Exception e){ e.printStackTrace(); logger.info("=====上传文件发生错误:" + e.getMessage()); } return files; }
二、文件上传属性Bean
public class FileBean { /** * 文件名 */ private String fileName; /** * 原始文件名 */ private String originalName; /** * 文件大小 */ private String fileSize; /** * 文件类型 */ private String fileType; /** * 后缀 */ private String suffix; /** * 绝对路径 */ private String absolutePath; public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public String getOriginalName() { return originalName; } public void setOriginalName(String originalName) { this.originalName = originalName; } public String getFileSize() { return fileSize; } public void setFileSize(String fileSize) { this.fileSize = fileSize; } public String getFileType() { return fileType; } public String getSuffix() { return suffix; } public void setSuffix(String suffix) { this.suffix = suffix; } public void setFileType(String fileType) { this.fileType = fileType; } public String getAbsolutePath() { return absolutePath; } public void setAbsolutePath(String absolutePath) { this.absolutePath = absolutePath; } }
三、Action调用方法:
public void fileUpload(HttpServletRequest request, HttpServletResponse response){ Map<String, Object> map = new HashMap<String, Object>(); try{ List<FileBean> fileBeans = this.uploadFile(request, request.getParameter("dirPath")); map.put("files", fileBeans); map.put("size", fileBeans == null ? 0: fileBeans.size()); }catch (Exception e) { e.printStackTrace(); }finally{ try { writeJson(response, JsonUtils.toJson(map)); } catch (Exception e) { e.printStackTrace(); } } }
Java通用文件下载地址:
http://fanshuyao.iteye.com/blog/2425604
================================
©Copyright 蕃薯耀 2018年9月20日
http://fanshuyao.iteye.com/
相关推荐
这里我们探讨的主题是“spring文件上传代码”,这涉及到Spring MVC如何处理文件上传请求,以及如何实现通用的Excel导入功能。我们将从Java微服务的视角出发,讨论相关依赖包和关键组件。 1. **文件上传**: - ...
5. 使用`put()`方法上传文件。 6. 完成上传后,记得断开连接。 以下是一个简单的SFTP上传示例: ```java import com.jcraft.jsch.*; public class SftpUploader { public static void uploadFile(String host, ...
`IOUtils`类则包含了读取和关闭流的通用方法,对于处理上传文件时生成的临时文件和输入流非常有用。 Apache Commons FileUpload则是专门用来处理HTTP请求中的多部分(multipart)数据,也就是文件上传的。在HTTP...
### Java通用文件上传功能技术实现 #### 一、文件上传概述与原理 在现代软件开发过程中,文件上传是一项非常常见的需求。特别是在Web应用领域,无论是简单的图像上传还是复杂的文档管理,都需要开发者掌握文件上传...
`MultipartFile`接口是Spring处理上传文件的核心,它允许你从`HttpServletRequest`中获取上传的文件。Spring MVC还提供了`@RequestParam`注解,可以方便地从HTTP请求中提取上传的文件。 4. **Jetty** 或 **Tomcat**...
- 首先,前端页面需要提供一个表单供用户选择并上传文件。表单通常采用`POST`方法,并设置`enctype="multipart/form-data"`属性来支持文件上传。 - 当用户提交表单后,文件数据会随HTTP请求一起发送到服务器端。 ...
Web模块提供了基础的面向Web的集成特性,例如多部分文件上传功能、Spring的MVC框架以及一个用于Web应用的远程支持。 在学习Spring之前,需要进行环境的搭建,这包括安装Java开发工具包(JDK)、Apache Commons ...
标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...
Java通用管理系统是一个基于多种技术构建的综合应用,用于实现企业级的信息管理和业务处理。系统主要采用了以下技术栈:EasyUI、Hibernate、Spring MVC、Spring、Maven和MySQL,这些都是Java开发中的重要工具和框架...
在Java中,我们可以使用Servlet或Spring MVC等框架来实现文件下载。以下是一个简单的Servlet示例: ```java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class ...
Java-Spring 整合 Java-Spring 整合是指将 Java 语言与 Spring 框架进行整合,以便更好地开发企业级应用程序。下面我们将对 Java-Spring 整合的相关知识点进行详细讲解。 一、 Spring 框架简介 Spring 框架是一款...
-- 指定最大上传文件大小 --> ``` 然后,通过在Controller中定义一个`@RequestParam("file") MultipartFile file`参数,可以获取到上传的文件。接着,通常会将其保存到服务器的某个目录下,并返回保存成功的消息...
这个项目提供了一个通用的文件上传和下载组件,它以Maven项目的形式存在,意味着它依赖于Maven的构建系统来管理项目依赖。IDEA作为开发工具,是JetBrains公司出品的一款强大的Java集成开发环境,为开发人员提供了...
本篇文章将深入探讨Java如何进行静态文件处理,并以"通用静态页面生成系统(Engineer) v.1"为例进行讲解。 首先,让我们了解静态文件处理的基本概念。在Web服务器上,静态文件服务主要是指读取存储在服务器上的文件...
Java Spring Boot 框架通用模板是开发人员在构建现代Java应用时常用的一个高效起点。Spring Boot是由Pivotal团队创建的,旨在简化Spring应用程序的初始设置和常规配置,使得开发者能够快速地专注于业务逻辑,而不是...
基于Bootstrap的Java通用框架Spring+mvc+hibernate,大家可以下载来学习,只需执行sql文件,即可启动项目,从前到后一整套源码,若不需要hibernate的同学可以自行更换成mybatis,正好学习练手。
Java Spring 是一个广泛使用的开源框架,它为构建企业级Java应用程序提供了全面的解决方案。Spring框架以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的核心特性,极...
源码包括2277个Java文件、2194个JavaScript文件、1503个Less文件、180个JSP文件、134个TypeScript文件、102个Markdown文件、101个TypeScript文件、63个SCSS文件、32个PNG文件和26个JPG文件。系统集成了零售管理、...
JavaConfig 是 Spring 社区的产品,提供了配置 Spring IoC 容器的纯 Java 方法。Spring Boot 自动配置原理是通过 @EnableAutoConfiguration 注解来实现的,该注解可以打开自动配置的功能,也可以关闭某个自动配置的...