Spring Boot 封装文件上传工具类

Spring Boot 封装文件上传工具类

2019-10-27 21:40:07发布 浏览数:6113
概述:Spring Boot 封装文件上传工具类

springboot 实现文件的上传这里我用的是commins-io依赖:

坐标如下:

 <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>

引入这个依赖之后就可以使用下面这个工具类进行文件上传的操作了:

如下:

package com.tourism.fzll.util;

import java.io.File;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;

public class FileUploadUtil {
	
	public static String upload(MultipartFile file) {
		try {
			String extName = file.getOriginalFilename();
			// 获取文件后缀
			if (extName.lastIndexOf(".") <= 0) {
				throw new RuntimeException("不支持该文件类型");
			}
			extName = extName.substring(extName.lastIndexOf("."));
			String webUrl = getWebUrl();
			String fileName = getFileName();
			String sysPath = System.getProperty("catalina.home") + "/webapps";
			// 获取文件名字
			fileName = getFileName() + extName;
			// 获取文件地址
			String filePath = "/content/" + fileName;
			String Url = sysPath +"/content/";
			File file2 = new File(Url);
			if (!file2.exists()) {
				file2.mkdirs();
			}
			file.transferTo(new File(sysPath + filePath));
			return webUrl + filePath;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}
	/**
	 * 
	 * @Title: upload 
	 * @Description: (将文件保存到指定的路径下) 
	 * @param file

	 * @return  
	 * @date 2019年9月30日 上午10:22:31
	 * @author 马超伟
	 */
	public static String upload(MultipartFile file,String specifiedPath) {
		try {
			String extName = file.getOriginalFilename();
			// 获取文件后缀
			if (extName.lastIndexOf(".") <= 0) {
				throw new RuntimeException("不支持该文件类型");
			}
			extName = extName.substring(extName.lastIndexOf("."));
			String fileName = getFileName();
			// 获取文件名字
			fileName = getFileName() + extName;
			File file2 = new File(specifiedPath);
			if (!file2.exists()) {
				file2.mkdirs();
			}
			file.transferTo(new File(specifiedPath + File.separator+ fileName));
			return fileName;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * 获取文件名
	 * @return
	 */
	public static String getFileName() {
		String uuid = UUID.randomUUID().toString();
		uuid = uuid.replace("-", "");
		return uuid.toLowerCase();
	}

	public static String getWebUrl() {
		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
		return  request.getServletContext().getRealPath("/img");
	}
	
	public static String getWebProUrl() {
		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
		return request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() +request.getContextPath();
	}
	
}


请先
登录
后评论
0 条评论
暂时没有评论
最新文章
更多