当前位置: 首页 > article >正文

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

}

}


http://www.kler.cn/a/400652.html

相关文章:

  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit
  • 网络爬虫 Python 第二课
  • 计算机网络-理论部分(二):应用层
  • VScode使用Batch Runner插件在终端运行bat文件
  • HBase 开发:使用Java操作HBase
  • 【分布式技术】分布式缓存技术-旁路缓存模式(Cache Aside Pattern)
  • 十六.SpringCloudAlibaba极简入门-整合Grpc代替OpenFeign
  • 跨平台WPF框架Avalonia教程 十五
  • 使⽤MATLAB进⾏⽬标检测
  • 数字化转型的三个阶段:信息化、数字化、数智化
  • 软考-信息安全-网络安全体系与网络安全模型
  • 高级java面试---spring.factories文件的解析源码API机制
  • Vue基础(2)_el和data的两种写法
  • uni-ui自动化导入
  • element ui 走马灯一页展示多个数据实现
  • MATLAB绘制克莱因瓶
  • QT6学习第三天
  • 驰骋资讯高速:Spring Boot汽车新闻网站
  • Idea中创建和联系MySQL等数据库
  • C#中的方法
  • 【数据中台资料大合集】大数据平台、数据湖、指标池建设,数据中台底层数据采集管理,ETL数据清洗(Word原件,PPT原件)
  • lua脚本语言基本原理
  • mysql的mvcc机制中,read view是什么时候生成的?
  • 游戏引擎学习第13天
  • 使用 JavaScript 制作 To-Do List
  • 06 - Clickhouse的表引擎