文件上传

这是一个使用Spring MVC实现的文件上传控制器,支持单个文件和批量文件上传,包括图片和Excel等。上传后的文件将根据指定路径保存,并返回上传成功的文件路径。

/**

  • 用途:上传图片
    */
    @Controller
    @RequestMapping("/common/upload")
    @SuppressWarnings(“all”)
    public class UploadController extends BaseController {

    /**

    • 功能: 上传文件(单个) 可上传 图片 、excel…等等
    • 代号:隐无为
    • @param request
    • @param file:图片
    • @param path:存放的路径
    • @return
      */
      @RequestMapping("/uploadFile")
      @ResponseBody
      public String uploadFile(HttpServletRequest request, MultipartFile file, String path) {
      JsonReturnData jsonReturnData = this.getUploadPath(request, file, path);
      return responseAPI.getJsonString(jsonReturnData);
      }

    /**

    • 功能: 上传文件(单个) 可上传 图片 、excel…等等
    • 代号:隐无为
    • @param request
    • @param file:图片
    • @param path:存放的路径
    • @return
      */
      @RequestMapping("/uploadLayedit")
      @ResponseBody
      public String uploadLayedit(HttpServletRequest request, MultipartFile file, String path) {
      JsonReturnData jsonReturnData = this.getUploadPath(request, file, path);
      HashMap<String, Object> map = new HashMap<>();
      map.put(“code”,0);
      map.put(“msg”,“上传成功”);
      HashMap<String, Object> dataMap = new HashMap<>();
      dataMap.put(“src”,"/"+jsonReturnData.getData());
      map.put(“data”,dataMap);
      return responseAPI.getJsonString(map);
      }

    /*

    • 上传文件(批量) 可上传 图片 、excel…等等
      */
      @RequestMapping(value = “/uploadFiles”, produces = “text/html;charset=UTF-8”)
      @ResponseBody
      public String uploadFiles(HttpServletRequest request, MultipartFile[] file, String path) {
      JsonReturnData<List> jsonImgs=new JsonReturnData<List>();
      if(StringUtil.isEmpty(path)){
      path=“other/img”;
      }
      List list=new ArrayList();
      for (int i = 0; i < file.length; i++) {
      //uniqueName += file[i].getOriginalFilename() + “,”;// 得到文件名
      JsonReturnData jsonReturnData = this.getUploadPath(request, file[i], path);
      if(jsonReturnData.getCode()==200){
      list.add(jsonReturnData.getData());
      }
      }
      if(list.size()!=file.length){
      jsonImgs.setMsg(“批量上传错误–丢失照片–请重新上传丢失照片”);
      jsonImgs.setCode(505);// 批量上传错误错误码
      }else{
      jsonImgs.setData(list);
      jsonImgs.setCode(200);
      jsonImgs.setMsg(“批量上传成功”);
      }
      return responseAPI.getJsonString(jsonImgs);
      }

    /**

    • @功能: 获取上传文件的路径
    • @代号:隐无为
    • @param request
    • @param file
    • @param path
    • @return
      */
      public JsonReturnData getUploadPath(HttpServletRequest request, MultipartFile file, String path) {
      JsonReturnData jsonReturnData = new JsonReturnData();
      if(StringUtil.isEmpty(path)){
      path=“other/img”;
      }
      String basePath = request.getSession().getServletContext().getRealPath(path);
      SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");
      // 日期格式文件夹
      String datePath = sdf.format(new Date());
      // uuid随机名
      String uuidPath = UUID.randomUUID().toString();
      // 文件的后缀名
      String fileExit = getFileExit(file.getOriginalFilename());
      // 创建目录
      File dir = new File(basePath + datePath);
      if (!dir.exists()) {
      dir.mkdirs();
      }
      // 创建文件的路径
      String newFilePath = basePath + datePath + uuidPath + fileExit;
      // 数据库存储的文件相对项目的路径
      String returnName = path + datePath + uuidPath + fileExit;
      File targetFile = new File(newFilePath);
      try {
      // 转存文件
      file.transferTo(targetFile);
      jsonReturnData.setCode(200);
      jsonReturnData.setMsg(“success”);
      jsonReturnData.setData(returnName);
      } catch (Exception e) {
      jsonReturnData.setCode(500);
      jsonReturnData.setMsg(“error-upload”);
      e.printStackTrace();
      }
      return jsonReturnData;
      }

    /**

    • @功能: 获取上传文件的路径 硬盘
    • @代号:隐无为
    • @param request
    • @param file
    • @param path
    • @return
      */
      public JsonReturnData getUploadDisk(HttpServletRequest request, MultipartFile file, String path) {
      JsonReturnData jsonReturnData = new JsonReturnData();
      if(StringUtil.isEmpty(path)){
      path=“other/img”;
      }
      //String basePath = request.getSession().getServletContext().getRealPath(path);
      String basePath = “D://upload//” + path;
      SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");
      // 日期格式文件夹
      String datePath = sdf.format(new Date());
      // uuid随机名
      String uuidPath = UUID.randomUUID().toString();
      // 文件的后缀名
      String fileExit = getFileExit(file.getOriginalFilename());
      // 创建目录
      File dir = new File(basePath + datePath);
      if (!dir.exists()) {
      dir.mkdirs();
      }
      // 创建文件的路径
      String newFilePath = basePath + datePath + uuidPath + fileExit;
      // 数据库存储的文件相对项目的路径
      String returnName = path + datePath + uuidPath + fileExit;
      File targetFile = new File(newFilePath);
      try {
      // 转存文件
      file.transferTo(targetFile);
      jsonReturnData.setCode(200);
      jsonReturnData.setMsg(“success”);
      jsonReturnData.setData(returnName);
      } catch (Exception e) {
      jsonReturnData.setCode(500);
      jsonReturnData.setMsg(“error-upload”);
      e.printStackTrace();
      }
      return jsonReturnData;
      }

    /**

    • 删除文件
    • @param imagepath
      */
      public void deleteFile(String imagepath) {
      if (imagepath != null) {
      File image = new File(imagepath);
      if (image.exists()) {
      image.delete();
      }
      }
      }

    /**

    • 取后缀名
    • @param fileName
    • @return
      */
      public String getFileExit(String fileName) {
      int index = fileName.lastIndexOf(’.’);
      return fileName.substring(index);
      }

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值