package com.tahoe.common.util; import com.tahoe.common.base.UploadInfo; import net.sf.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Map; /** * 图片上传 * * @author Wdd * @ClassName: UploadUtil * @Description: * @date 2018年4月28日 上午11:44:05 */ public class UploadUtil { private static final Logger log = LoggerFactory.getLogger(UploadUtil.class); /** * 生成上传文件名 * * @return */ public static String creatName() { String time = Long.toString(System.currentTimeMillis()); String rand = Integer.toString(((int) (Math.random() * 10000))); return time + rand; } /** * 图片处理上传 * * @param fileUrl 图片地址 * @param filesuffix 图片后缀名 * @return 新文件名 */ public static String imageProcess(String fileUrl, String filesuffix) { //图片像素处理 //生成新的文件名 String newName = creatName() + "." + filesuffix; try { return newName; } catch (Exception e) { log.error("图片上传失败", e); return "error"; } } /** * 删除临时文件 * * @param dir 文件目录 * @param fileName 文件名 * @param filesuffix 文件后缀名 */ public static void deleteDir(File dir, String fileName, String filesuffix, String type) { if (dir.isDirectory()) { if ("img".equals(type)) { File file = new File(dir, fileName); file.delete(); } else { File file = new File(dir, fileName); file.delete(); } } } /** * 上传文件 * * @param request * @param type * @return * @throws UnsupportedEncodingException */ public static UploadInfo upload(HttpServletRequest request, String type, String secondary) throws UnsupportedEncodingException { /* * 加载imgurl * */ String imgUrl = PropertyManager.getProperty("img_url"); long size = 0; String realFilePath = imgUrl + secondary; // 先上传到此目录下 MultipartHttpServletRequest multipRequest = (MultipartHttpServletRequest) request; multipRequest.setCharacterEncoding("utf-8"); Map<String, MultipartFile> fileMap = multipRequest.getFileMap(); MultipartFile mfile = null; //当前域名 String name = ""; //原文件名 String oldName = ""; //原文件名没有后缀 String newName = ""; //新文件名(没有后缀) String filesuffix = "";//文件后缀名 // 没有获取到上传的文件信息 if (fileMap.entrySet().size() == 0) { return null; } for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { mfile = entity.getValue(); if (mfile != null && mfile.getSize() > 0) { name = mfile.getOriginalFilename(); size = mfile.getSize(); //获取文件后缀名 filesuffix = name.substring(name.lastIndexOf(".") + 1); oldName = name.replace("." + filesuffix, ""); //System.out.println(size + " " + type); if (name == null || name.trim().equals("")) { continue; } //如果没有文件夹则创建 if (!(new File(realFilePath).isDirectory())) { new File(realFilePath).mkdirs(); } if ("img".equals(type)) { newName = imageProcess(realFilePath + "/" + name, filesuffix); } else if ("accessory".equals(type)) { Date date = new Date(); newName = oldName + date.getTime() + "." + filesuffix; } File saveFile = new File(realFilePath + newName); //保存文件 try { mfile.transferTo(saveFile); } catch (Exception e) { e.printStackTrace(); log.error("文件保存出错!" + e.getMessage()); return null; } } } UploadInfo ui = new UploadInfo(); ui.setOldName(name); ui.setPath(realFilePath + newName);//imgUpload.getNewName() ui.setNewName(newName); ui.setSize(size + ""); System.out.println("UploadInfo====" + JSONObject.fromObject(ui).toString()); return ui; } /** * 图片上传 * * @param request * @return */ public static UploadInfo imgUpload(HttpServletRequest request, String secondary) { UploadInfo ui = null; try { ui = upload(request, "img", secondary); } catch (UnsupportedEncodingException e) { //e.printStackTrace(); } return ui; } /** * 附件上传 * * @param request * @return * @throws UnsupportedEncodingException */ public static UploadInfo accessoryUpload(HttpServletRequest request, String secondary) throws UnsupportedEncodingException { UploadInfo ui = null; ui = upload(request, "accessory", secondary); return ui; } /** * 附件上传 * * @param request * @return */ public static UploadInfo fileUpload(HttpServletRequest request, String secondary) { UploadInfo ui = null; try { ui = upload(request, "file", secondary); } catch (UnsupportedEncodingException e) { //e.printStackTrace(); } return ui; } /** * 删除服务上的文件 * * @param filePath 路径 * @return * @author W */ public static boolean deleteServerFile(String filePath) { boolean delete_flag = false; try { File file = new File(filePath); if (file.exists() && file.isFile() && file.delete()) delete_flag = true; else delete_flag = false; } catch (Exception e) { e.printStackTrace(); delete_flag = false; } return delete_flag; } }
文件上传Util类
最新推荐文章于 2024-04-27 23:13:56 发布