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;
     }    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM