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