java-http接口-文件上传

  最近有一个需求,需要对接附件,直接以文件的形式传输,接口为http接口,代码如下:

    @RequestMapping(value = "/upLoadFuJian", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> upLoadFuJian(@RequestParam MultipartFile file,HttpServletRequest request) throws IllegalStateException, IOException{
        
        Map<String, Object> map = new HashMap<String, Object>();
        
        // 判断文件是否为空
        if (!file.isEmpty()) {
            try {
                //判断文件目录是否存在,否则自动生成
                File directory = new File(UPLOAD_DIRECTORY);
                if (!directory.exists()){
                    directory.mkdirs();
                }

                //失败跳转视图
                if (file.getSize() > 30000)
                map.put("message", file.getOriginalFilename()+"超过了指定大小");

                // 文件保存路径
                String filePath =  FilenameUtils.concat(UPLOAD_DIRECTORY, file.getOriginalFilename());
                // 转存文件
                file.transferTo(new File(filePath));
                //保存信息入库
                String id = UUID.randomUUID().toString();
                String newFileNameNotExt = UUID.randomUUID().toString();
                String originalFileName = file.getOriginalFilename();
                String newFileName = newFileNameNotExt + "." + FileUtils.getExtensionName(originalFileName);
                CommonFile cf = new CommonFile();
                cf.setOwnerGuid(id);
                cf.setId(newFileNameNotExt);
                cf.setOriginalFileName(originalFileName);
                cf.setNewFileName(newFileName);
                cf.setFileType(file.getContentType());
                cf.setFileSize(file.getSize());
                cf.setUploadFileTypeCode("kongZhiCenter");
                cf.setCreateTime(System.currentTimeMillis());
                cf.setIsDelete(0);
                TestUtils.systemOutPrintln("cf.getFileType()=" + cf.getFileType());
                commonFileService.add(cf);
                
                map.put("message", "请求成功");
                map.put("code", "200");
                map.put("id", id);
            } catch (Exception e) {
                map.put("message", "请求失败");
                map.put("code", "201");
                e.printStackTrace();
            }
        }
        return map;
     }    

 

posted @ 2019-01-09 21:55  昊Zz  阅读(8142)  评论(0编辑  收藏  举报