java模擬調用上傳文件接口


1、模擬調用上傳文件接口

pom

 <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

 

調用方

@GetMapping("/upload")
    public String upload(String fileName) throws Exception {
        if (StrUtil.isBlank(fileName)) {
            return "fileName is null";
        }
        File file = new File("./src/main/resources/static/uploadFile/");
        if (!file.exists()) {
            file.mkdirs();// 能創建多級目錄
        }
        File testFile = new File(file, fileName);
        if (!testFile.exists()) {
            testFile.createNewFile();//有路徑才能創建文件
        }

        DiskFileItem fileItem = (DiskFileItem) new DiskFileItemFactory().createItem("file",
                MediaType.TEXT_PLAIN_VALUE, true, testFile.getName());

        try {
            InputStream input = new FileInputStream(testFile);
            OutputStream os = fileItem.getOutputStream();
            IOUtils.copy(input, os);
        } catch (Exception e) {
            throw new IllegalArgumentException("Invalid file: " + e, e);
        }

        MultipartFile multi = new CommonsMultipartFile(fileItem);
        String s = uploadService.handleFileUpload(multi);
        log.info(s);
        return s;
    }

被調用方

    @PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public String handleFileUpload(@RequestPart(value = "file") MultipartFile file) throws Exception {
        String name = file.getOriginalFilename();
        File filePath = new File("./src/main/resources/static/uploadFile/");
        if (!filePath.exists()) {
            filePath.mkdirs();// 能創建多級目錄
        }
        File testFile = new File(filePath, name);
        if (!testFile.exists()) {
            testFile.createNewFile();//有路徑才能創建文件
        }
        //第一種 需要絕對路徑
//        file.transferTo(testFile);
        //第二種
        // 使用下面的jar包
        FileUtils.copyInputStreamToFile(file.getInputStream(),testFile);
        return name;
    }

 


免責聲明!

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



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