springboot上传下载文件

@RequestMapping("bigJson")

@RestController

@Slf4j

public class TestBigJsonController {

@Resource
private BigjsonService bigjsonService;

@PostMapping("uploadJsonFile")
public ResponseResult<Long> uploadJsonFile(@RequestParam("file")MultipartFile file){
    if (file.isEmpty()) {
        return ResponseResult.error();
    }

    try {
        Bigjson bigjson = new Bigjson();
        bigjson.setJsonFileName(file.getName());

        // 解析JSON文件
        ObjectMapper objectMapper = new ObjectMapper();
        JSONObject jsonObject = objectMapper.readValue(new InputStreamReader(file.getInputStream(), StandardCharsets.UTF_8), JSONObject.class);
        bigjson.setJsonFile(jsonObject.toJSONString());

        //
        Long id = bigjsonService.uploadJsonFile(bigjson);

        // 返回成功响应
        return ResponseResult.success(id);
    } catch (IOException e) {
        log.error("上传错误");
        return ResponseResult.error();
    }
}

@GetMapping("/downloadJson")
public ResponseEntity<byte[]> downloadJson(@RequestParam("id") Long id){
    Bigjson bigjson = bigjsonService.getById(id);
    byte[] bytes = bigjson.getJsonFile().getBytes();

    // 设置响应头
    HttpHeaders headers = new HttpHeaders();
    headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+bigjson.getJsonFileName()+".json");
    headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
    headers.add("Pragma", "no-cache");
    headers.add("Expires", "0");

    // 返回响应
    return new ResponseEntity<>(bytes, headers, HttpStatus.OK);

}

}

相关推荐
.生产的驴几秒前
SpringCloud OpenFeign负载均衡远程调用 跨服务调用 连接池优化
java·运维·spring boot·后端·spring·spring cloud·负载均衡
OldGj_16 分钟前
「JVM详解」
java·jvm
飞滕人生TYF22 分钟前
Java retainAll() 详解
java·开发语言·windows·java基础
xxxxxmy25 分钟前
移动零
java·算法·力扣
仲夏那片海27 分钟前
spring web项目中常用的注解
java·前端·spring
清酒伴风(面试准备中......)33 分钟前
Spring基础——针对实习面试
java·spring·面试·实习
zyh200504301 小时前
SpringCloud多机部署,负载均衡-LoadBalance
spring·spring cloud·负载均衡
小蒜学长1 小时前
基于springboot的“衣依”服装销售平台的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·oracle·小程序
sky wide1 小时前
JAVA接口代码示例
java