package com.mall.common; import com.mall.utils.ResponseTemplate; import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2.ServletActionContext; import org.apache.struts2.util.TokenHelper; import java.io.File; import java.util.HashMap; import java.util.Map; public class UploadAction extends ActionSupport { private File uploadFile; private String uploadFileContentType; private String uploadFileFileName; public Map<String, Object> jsonResult; public String upload() { if (uploadFile == null) { jsonResult = ResponseTemplate.error(-1, "No file!"); return SUCCESS; } // 1.获取文件的保存路径 String basePath = ServletActionContext.getServletContext().getRealPath("/uploads"); File basePathFile = new File(basePath); if (!basePathFile.exists()) { basePathFile.mkdirs(); } // 2.把文件名UUID String GUIDFileName = TokenHelper.generateGUID(); if ("image/png".equals(uploadFileContentType)) { GUIDFileName = GUIDFileName + ".png"; } else { GUIDFileName = GUIDFileName + ".jpg"; } // 3.保存文件 // 复制:临时文件还在,浪费服务器磁盘空间 //FileUtils.copyFile(visitFile, new File(file,GUIDFileName)); // 剪切:把临时文件重命名到指定位置(比较好) uploadFile.renameTo(new File(basePathFile, GUIDFileName)); // 4. 返回结果,将文件的保存路径返回 Map<String, Object> map = new HashMap<>(); map.put("filePath", "uploads/" + GUIDFileName); jsonResult = ResponseTemplate.success(map); return SUCCESS; } public void setUploadFile(File uploadFile) { this.uploadFile = uploadFile; } public void setUploadFileContentType(String uploadFileContentType) { this.uploadFileContentType = uploadFileContentType; } public void setUploadFileFileName(String uploadFileFileName) { this.uploadFileFileName = uploadFileFileName; } }