如何使用Hutool完成Java文件上传下载

1. 流程概述

下面是使用Hutool完成Java文件上传下载的步骤,我们将通过代码示例来具体说明每一步需要做什么。

步骤 操作
1 引入Hutool依赖
2 实现文件上传功能
3 实现文件下载功能

2. 具体操作步骤

步骤1:引入Hutool依赖

首先,你需要在你的项目中引入Hutool依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.7.4</version>
</dependency>

步骤2:实现文件上传功能

接下来,我们来实现文件上传功能。你需要编写一个上传文件的Controller,并调用Hutool提供的方法来实现文件上传。

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.http.ContentType;
import cn.hutool.http.HttpUtil;
import java.io.File;

@RestController
public class FileUploadController {

    @PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file) {
        String fileName = IdUtil.simpleUUID() + "_" + file.getOriginalFilename();
        File destFile = new File("/path/to/upload/directory/" + fileName);
        try {
            FileUtil.writeFromStream(file.getInputStream(), destFile);
            return "File uploaded successfully!";
        } catch (IOException e) {
            return "File upload failed!";
        }
    }
}

步骤3:实现文件下载功能

最后,我们来实现文件下载功能。你同样需要编写一个下载文件的Controller,并调用Hutool提供的方法来实现文件下载。

import cn.hutool.core.io.FileUtil;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import java.io.File;

@RestController
public class FileDownloadController {

    @GetMapping("/download/{fileName}")
    public ResponseEntity<byte[]> downloadFile(@PathVariable String fileName) {
        File file = new File("/path/to/download/directory/" + fileName);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentDispositionFormData("attachment", fileName);
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        return new ResponseEntity<>(FileUtil.readBytes(file), headers, HttpStatus.OK);
    }
}

3. 类图

classDiagram
    FileUploadController <|-- FileUtil
    FileDownloadController <|-- FileUtil

4. 旅行图

journey
    title File Upload and Download Journey
    section Uploading a File
        FileUploadController -->> FileUtil: Call upload method
    section Downloading a File
        FileDownloadController -->> FileUtil: Call download method

通过以上步骤,你已经学会了使用Hutool完成Java文件上传下载的功能。希望这篇文章对你有所帮助,祝你在开发中顺利!