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/
相关推荐
通用excel导入功能 文件上传下载功能 以及相关的依赖包 自己用的,下载你自己给分
Java spring boot 框架通用模板
Java通用管理系统(easyui、 hibernate、 spring mvc、 spring、 maven、 mysql)
基于Bootstrap的Java通用框架Spring+mvc+hibernate,大家可以下载来学习,只需执行sql文件,即可启动项目,从前到后一整套源码,若不需要hibernate的同学可以自行更换成mybatis,正好学习练手。
最新Java通用后台管理系统 bootstrap,hibernate,spring mvc,spring,maven,mysql
通用开发平台(spring mvc,spring,bootstrap,hibernate)
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
最新JAVA通用后台管理系统(ext-js、 Hibernate、 Spring mvc、 spring)可用
最新JAVA通用后台管理系统(ext-js,Hibernate,Spring mvc,spring)可用
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
1、采用Spring MVC的静态加载缓存功能,在首页将Javascript文件、CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度。 2、三种皮肤主题:经典、灰色和海王星,支持多浏览器和多分辨率。 3、...
Java通用管理系统(easyui,hibernate,spring mvc,spring,maven,mysql)
项目基于jdk1.8整合了springboot+mvc+mybatis(通用mapper)+druid+jsp+bootstrap等技术,springboot+Listener(监听器),Filter(过滤器),Interceptor(拦截器),Servlet,springmvc静态资源,文件上传下载,多数据源切换,缓存...
Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...
最新Java通用后台管理系统 bootstrap、hibernate、spring mvc、spring、maven、mysql
3、ExtJS的HtmlEditor的图片文件上传插件。 4、Grid列表和表单,包含添加、删除、批量删除、修改、查看、图片查看和按条件查询列表等功能。 5、导入导出Excel数据,支持xlsx和xls文件。 6、资源管理(菜单管理)。 7...
Activiti7精讲&Java通用型工作流开发实战视频教程,本课程从0开始开发一个通用、好用、高效的UML工作流系统,完整版11章,课程配套资料齐全。
若依是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。...