顾乔芝士网

持续更新的前后端开发技术栈

Servlet总结十三:程序乱码解决方案

乱码经常出现在什么位置

  • 数据保存过程中的乱码
  • 数据展示过程中的乱码

Spring Security授权RBAC和基于方法的授权

#00后送爸爸的第一台新能源#

惊呆了!Controller接口返回值支持17种逆天类型

环境:SpringBoot3.4.2

几句代码写个飞快的下载软件,轻快版 aria2 支持 UPnP,独立 EXE 程序

aria2 虽然很强大,配置就略有些复杂,一些懒人包说实话整成了累人包。

今天抽了点时间改进了一下 aardio 中的 process.aria2 扩展库,顺手解决了 aria2 不支持 UPnP 内网穿透的问题 —— 再也不用手动去配置了。

process.aria2 可以自动创建并管理 aria2 服务进程,自动获取并添加最新 Tracker 服务器,自动探测可用空闲端口,多个 aria2 进程不会冲突。并且自动检测系统环境并自动设置最佳配置。

SpringBoot集成MinIo实现文件存储-菜鸟入门级

一、前言

随着云计算和大数据的快速发展,企业对存储系统的需求逐渐增大,尤其是对于海量数据的存储和管理。传统的文件存储方式已经不能满足性能、可扩展性和安全性等方面的要求。对象存储(Object Storage)作为一种新的存储方式,凭借其灵活性、扩展性和高可用性,逐渐成为了现代企业存储系统的首选。

MinIO 是一个高性能、分布式对象存储服务,兼容 Amazon S3 API,非常适合用于开发和部署私有云存储服务。Spring Boot 是一个简化企业级 Java 应用程序开发的框架,它凭借开箱即用的特性,广泛用于快速开发微服务应用。

SpringBoot中7个文件上传下载工具

文件上传下载功能是Web应用中的常见需求,从简单的用户头像上传到大型文件的传输与共享,都需要可靠的文件处理机制。

SpringBoot作为流行的Java应用开发框架,提供了多种实现文件上传下载的工具和方案。

本文将介绍七种在SpringBoot中处理文件上传下载的工具。

1. MultipartFile接口 - 基础文件上传处理

以压缩包的方式下载excel(excel压缩包怎么安装)

/**
     * 以压缩包的方式下载excel
     * @param response     响应
     * @param workbookMap
     * @param zipName     压缩包名称
     * @throws Exception
     */
    public static void downloadExcelForZip(HttpServletResponse response, Map<String, XSSFWorkbook> workbookMap, String zipName) throws Exception {
        ZipOutputStream out = null;
        try {
            response.setContentType("application/*");
            response.setHeader("Content-Disposition", "attachment;filename=" + new String(zipName.getBytes("gb2312"), "ISO8859-1"));
            out = new ZipOutputStream(response.getOutputStream());
            for (String fileName : workbookMap.keySet()) {
                XSSFWorkbook workbook = workbookMap.get(fileName); 
                //创建一个新的ZIP条目,文件名由fileName指定
                ZipEntry zipEntry = new ZipEntry(fileName);
                //将新创建的ZIP条目写入ZIP输出流,表示即将写入该条目对应的数据
                out.putNextEntry(zipEntry);
                //由于workbook.write()方法在写入完成后会关闭底层的输出流,因此不能直接将工作簿写入ZIP输出流out
                //为了避免流被提前关闭,代码使用ByteArrayOutputStream作为中间缓冲,先将工作簿写入内存,再将内存中的数据写入ZIP流
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                workbook.write(bos);
                bos.writeTo(out);
                out.closeEntry();
            }
            out.flush();
        } catch (Exception e) {
            throw new ServletException("下载文件异常" + e.getMessage());
        } finally {
            if (out != null) {
                out.close();
            }
        }
    }

setCharacterEncoding和setContentType的区别

setCharacterEncoding:只是设置字符的编码方式

 response.setCharacterEncoding("utf-8");
<< < 1 2 >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言