import com.alibaba.fastjson.JSONObject; import com.retailo2o.server.domain.base.ResponseData; import io.swagger.annotations.Api; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.util.UUID; /** * 文件上传处理 * */ @RestController @RequestMapping("/webAPI") public class CommonController { private static final Logger log = LoggerFactory.getLogger(CommonController.class); /** * 1.文件保存在服务器,url地址保存在数据库 * 上传成功之后返回成功保存的url地址 */ @RequestMapping(value = "/upload", method = RequestMethod.POST) @ResponseBody public ResponseData upload(@RequestParam("file") MultipartFile file) { try { JSONObject jsonObject = new JSONObject(); if (file.isEmpty()) { System.out.println("上传的文件为空!"); return ResponseData.error("上传的文件为空"); } // 文件名 String fileName = file.getOriginalFilename(); // 获取文件后缀名 String extension = fileName.substring(fileName.indexOf(".")); // 上传文件的路径 String uploadFolder = glbalUploadPath; // 生成一个新的文件名 fileName = UUID.randomUUID() + extension; File dest = new File(uploadFolder + fileName); // 检测文件目录是否存在 不存在则创建 if (!dest.getParentFile().exists()) { dest.getParentFile().mkdirs(); } try { file.transferTo(dest); } catch (IOException e) { e.printStackTrace(); } // 返回虚拟文件访问路径 jsonObject.put("fileName",fileName); jsonObject.put("url",globalpictureUrl+"/scm-server/upload/"+fileName); jsonObject.put("fileByte",file.getBytes()); return ResponseData.success(jsonObject); } catch (Exception ex) { System.out.println("文件为空"); return ResponseData.error("文件为空"); } } /** * 1.文件保存在服务器,url地址保存在数据库 * 上传成功之后返回成功保存的url地址 */ @PostMapping("/upload2") @ResponseBody public ResponseData uploadFile2(@RequestParam("file") MultipartFile file, HttpServletRequest request){ JSONObject jsonObject=new JSONObject(); if(!file.isEmpty()){ String uploadPath = "C:\\uploadFile"; // 如果目录不存在则创建 File uploadDir = new File(uploadPath); if (!uploadDir.exists()) { uploadDir.mkdir(); } String OriginalFilename = file.getOriginalFilename();//获取原文件名 String suffixName = OriginalFilename.substring(OriginalFilename.lastIndexOf("."));//获取文件后缀名 //重新随机生成名字 String filename = UUID.randomUUID().toString() +suffixName; File localFile = new File(uploadPath+"\\"+filename); try { file.transferTo(localFile); //把上传的文件保存至本地 /** * 这里应该把filename保存到数据库,供前端访问时使用 */ // return filename;//上传成功,返回保存的文件地址 jsonObject.put("fileName",filename); jsonObject.put("url",filename); System.out.println(filename); return ResponseData.success(jsonObject); }catch (IOException e){ e.printStackTrace(); System.out.println("上传失败"); return ResponseData.error("上传失败"); } }else{ System.out.println("文件为空"); return ResponseData.error("文件为空"); } } }
标签:ResponseData,封装,Spring,Boot,fileName,file,jsonObject,import,上传 From: https://www.cnblogs.com/LowKeyCXY/p/16755925.html