文件上传工具类
来源:互联网 发布:大富豪2手游源码 编辑:程序博客网 时间:2024/04/29 16:39
package com.eastcom.cartutor.admin.web.common.utils;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartFile;import org.springframework.web.multipart.MultipartHttpServletRequest;import org.springframework.web.multipart.commons.CommonsMultipartResolver;@Componentpublic class fileUploadUtils { private static String uploadPath; @Value("${global.upload}") public void setUploadPath(String uploadPath) { fileUploadUtils.uploadPath = uploadPath; } /** * 创建目录 * @return String */ public static String mkUploadPath(String dirPath){ String path = uploadPath + "/" + dirPath; File file =new File(path); if (!file.exists() && !file .isDirectory()) { //目录不存在,创建 file.mkdirs(); } return path; } /** * 生成上传文件的文件名 * @param fileName * @return String 文件名以:yyyyMMddHHmmss+"_"+文件的原始名称 */ public static String mkFileName(String fileName){ SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss"); return sf.format(new Date())+"_"+fileName; } /** * 获取文件 * @param url * @param request * @param response * @throws IOException */ @SuppressWarnings("resource") public static void getFile(String url,HttpServletRequest request,HttpServletResponse response) throws IOException { File file = new File(url); if (file.isFile() && file.exists()){ long len = file.length(); response.setContentLength((int) len); byte[] bytes = new byte[(int)len]; BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file)); int r = bufferedInputStream.read( bytes ); if (r != len) { throw new IOException("读取文件不正确"); } bufferedInputStream.close(); OutputStream os = response.getOutputStream(); os.write(bytes); os.flush(); os.close(); } } /** * 保存文件 * @param request * @return List<Map> * @throws IllegalStateException * @throws IOException */ public static List<Map<String, Object>> uploadFile(String dirPath,HttpServletRequest request) throws IllegalStateException, IOException{ CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); List<Map<String, Object>> result = new ArrayList<>(); if(multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request; Iterator<String> iter = multiRequest.getFileNames(); while(iter.hasNext()){ MultipartFile file = multiRequest.getFile(iter.next()); if(file!=null && file.getSize()>0) { //文件名 String fileName = mkFileName(file.getOriginalFilename()); //文件存储路径 String path = mkUploadPath(dirPath) + "/"+ fileName; //储存文件 file.transferTo(new File(path)); Map<String, Object> fileInfo = new HashMap<>(); fileInfo.put("url", path); result.add(fileInfo); } } } return result; }}
阅读全文
0 0
- 文件上传工具类
- 文件上传工具类
- 文件上传工具类
- 文件上传工具类
- 【工具类】用户文件上传 更新 上传
- 分享文件上传工具类
- ftp上传文件工具类
- 文件一个上传工具类
- java上传文件工具类
- JAVA文件上传工具类
- 图片文件上传工具类
- Android文件上传工具类
- J2EE上传文件工具类
- 文件上传的工具类
- ftp上传文件下载文件工具类
- SpringMVC文件上传的实现+文件上传工具类设计
- 分享文件一个上传工具类
- Java一个文件上传工具类
- vue-router与setInterval的问题
- java中boolean属性的set,get方法
- Python数据抓取——多线程,异步
- js链接数据库
- IOS横竖屏
- 文件上传工具类
- 第七周Java作业--继承
- XMLhandleTest
- TYVJ4864 天天去哪吃 模拟
- 精通正则表达式--正则表达式入门示例拓展(2)总结笔记重点捕获型括号、环视字符
- HTTP 的长连接和短连接
- 合并两棵二叉树
- API安全设计
- 隔行扫描(interlaced)与逐行扫描(progressive)的图像对比