`

Java Spring文件上传,Java文件上传,Java通用文件上传

阅读更多

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/

 

 

 

 

 

 

 

 

 

 

1
0
分享到:
评论
1 楼 蕃薯耀 2018-09-20  
Java Spring文件上传,Java文件上传,Java通用文件上传

========
蕃薯耀

相关推荐

    spring文件上传代码

    这里我们探讨的主题是“spring文件上传代码”,这涉及到Spring MVC如何处理文件上传请求,以及如何实现通用的Excel导入功能。我们将从Java微服务的视角出发,讨论相关依赖包和关键组件。 1. **文件上传**: - ...

    java实现导出csv文件并上传sftp

    5. 使用`put()`方法上传文件。 6. 完成上传后,记得断开连接。 以下是一个简单的SFTP上传示例: ```java import com.jcraft.jsch.*; public class SftpUploader { public static void uploadFile(String host, ...

    Spring文件上传和下载所需的jar包.rar

    `IOUtils`类则包含了读取和关闭流的通用方法,对于处理上传文件时生成的临时文件和输入流非常有用。 Apache Commons FileUpload则是专门用来处理HTTP请求中的多部分(multipart)数据,也就是文件上传的。在HTTP...

    java通用文件上传功能技术实现

    ### Java通用文件上传功能技术实现 #### 一、文件上传概述与原理 在现代软件开发过程中,文件上传是一项非常常见的需求。特别是在Web应用领域,无论是简单的图像上传还是复杂的文档管理,都需要开发者掌握文件上传...

    java文件上传的用到的jar包

    `MultipartFile`接口是Spring处理上传文件的核心,它允许你从`HttpServletRequest`中获取上传的文件。Spring MVC还提供了`@RequestParam`注解,可以方便地从HTTP请求中提取上传的文件。 4. **Jetty** 或 **Tomcat**...

    文件上传的处理方法(java,.net,php通用)

    - 首先,前端页面需要提供一个表单供用户选择并上传文件。表单通常采用`POST`方法,并设置`enctype="multipart/form-data"`属性来支持文件上传。 - 当用户提交表单后,文件数据会随HTTP请求一起发送到服务器端。 ...

    Java Spring入门简介

    Web模块提供了基础的面向Web的集成特性,例如多部分文件上传功能、Spring的MVC框架以及一个用于Web应用的远程支持。 在学习Spring之前,需要进行环境的搭建,这包括安装Java开发工具包(JDK)、Apache Commons ...

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

    标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...

    Java通用管理系统(easyui、 hibernate、 spring mvc、 spring、 maven、 mysql)

    Java通用管理系统是一个基于多种技术构建的综合应用,用于实现企业级的信息管理和业务处理。系统主要采用了以下技术栈:EasyUI、Hibernate、Spring MVC、Spring、Maven和MySQL,这些都是Java开发中的重要工具和框架...

    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 框架进行整合,以便更好地开发企业级应用程序。下面我们将对 Java-Spring 整合的相关知识点进行详细讲解。 一、 Spring 框架简介 Spring 框架是一款...

    SpringMVC文件增删改查(上传、更新、下载、删除)

    -- 指定最大上传文件大小 --&gt; ``` 然后,通过在Controller中定义一个`@RequestParam("file") MultipartFile file`参数,可以获取到上传的文件。接着,通常会将其保存到服务器的某个目录下,并返回保存成功的消息...

    通用文件的上传和下载

    这个项目提供了一个通用的文件上传和下载组件,它以Maven项目的形式存在,意味着它依赖于Maven的构建系统来管理项目依赖。IDEA作为开发工具,是JetBrains公司出品的一款强大的Java集成开发环境,为开发人员提供了...

    java静态文件处理

    本篇文章将深入探讨Java如何进行静态文件处理,并以"通用静态页面生成系统(Engineer) v.1"为例进行讲解。 首先,让我们了解静态文件处理的基本概念。在Web服务器上,静态文件服务主要是指读取存储在服务器上的文件...

    Java spring boot 框架通用模板

    Java Spring Boot 框架通用模板是开发人员在构建现代Java应用时常用的一个高效起点。Spring Boot是由Pivotal团队创建的,旨在简化Spring应用程序的初始设置和常规配置,使得开发者能够快速地专注于业务逻辑,而不是...

    基于Bootstrap的Java通用框架Spring+mvc+hibernate.zip

    基于Bootstrap的Java通用框架Spring+mvc+hibernate,大家可以下载来学习,只需执行sql文件,即可启动项目,从前到后一整套源码,若不需要hibernate的同学可以自行更换成mybatis,正好学习练手。

    java spring视频5

    Java Spring 是一个广泛使用的开源框架,它为构建企业级Java应用程序提供了全面的解决方案。Spring框架以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的核心特性,极...

    基于Java Spring框架的供应链中台系统基础版设计源码

    源码包括2277个Java文件、2194个JavaScript文件、1503个Less文件、180个JSP文件、134个TypeScript文件、102个Markdown文件、101个TypeScript文件、63个SCSS文件、32个PNG文件和26个JPG文件。系统集成了零售管理、...

    Java Spring Boot面试题

    JavaConfig 是 Spring 社区的产品,提供了配置 Spring IoC 容器的纯 Java 方法。Spring Boot 自动配置原理是通过 @EnableAutoConfiguration 注解来实现的,该注解可以打开自动配置的功能,也可以关闭某个自动配置的...

Global site tag (gtag.js) - Google Analytics