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

spring boot 下载resources下的静态文件为流格式

废话不多说,直接上代码
一、下载逻辑

public void downAppApk(HttpServletResponse response){ClassPathResource classPathResource = new ClassPathResource("app/xxxxxx.apk");if (!classPathResource.exists()) {throw new BusinessException("安装包不存在");}String appName = URLEncoder.encode("xxxxxx","UTF-8") + ".apk";InputStream inputStream = classPathResource.getInputStream();OutputStream outputStream = response.getOutputStream();response.setContentType("application/vnd.android.package-archive");response.setCharacterEncoding("utf-8");response.setHeader("Content-disposition", "attachment;filename=" + appName);IOUtils.copy(inputStream,outputStream);}

二、格式对照表
比较全面的contentType的类型值

文件扩展名                        Content-Type(Mime-Type)
.*( 二进制流,不知道下载文件类型)	application/octet-stream	
.tif	image/tiff
.asp	text/asp	
.asx	video/x-ms-asf
.au	    audio/basic	
.avi	video/avi
.awf	application/vnd.adobe.workflow	
.biz	text/xml
.bmp	application/x-bmp	
.bot	application/x-bot
.cit	application/x-cit	
.class	java/*
.csi	application/x-csi	
.css	text/css
.dcd	text/xml	
.dcx	application/x-dcx
.dib	application/x-dib	
.dll	application/x-msdownload
.doc	application/msword	
.dot	application/msword
.drw	application/x-drw	
.dtd	text/xml
.dwf	Model/vnd.dwf	
.dwf	application/x-dwf
.etd	application/x-ebx	
.exe	application/x-msdownload
.gif	image/gif	
.gl2	application/x-gl2
.hrf	application/x-hrf	
.hta	application/hta
.htc	text/x-component	
.htm	text/html
.html	text/html	
.htt	text/webviewhtml
.htx	text/html	
.icb	application/x-icb
.ico	image/x-icon	
.ico	application/x-ico
.iff	application/x-iff	
.ig4	application/x-g4
.igs	application/x-igs	
.iii	application/x-iphone
.img	application/x-img	
.ins	application/x-internet-signup
.java	java/*	
.jfif	image/jpeg
.jpe	image/jpeg	
.jpe	application/x-jpe
.jpeg	image/jpeg	
.jpg	image/jpeg
.jpg	application/x-jpg	
.js	    application/x-javascript
.jsp	text/html	
.la1	audio/x-liquid-file
.mdb	application/msaccess	
.mdb	application/x-mdb
.mfp	application/x-shockwave-flash	
.mht	message/rfc822
.mhtml	message/rfc822	
.mi	    application/x-mi
.mid	audio/mid	
.midi	audio/mid
.mil	application/x-mil	
.mml	text/xml
.mnd	audio/x-musicnet-download	
.mns	audio/x-musicnet-stream
.mocha	application/x-javascript	
.movie	video/x-sgi-movie
.mp1	audio/mp1	
.mp2	audio/mp2
.mp2v	video/mpeg	
.mp3	audio/mp3
.mp4	video/mpeg4	
.mpa	video/x-mpg
.mpd	application/vnd.ms-project	
.mpe	video/x-mpeg
.mpeg	video/mpg	
.mpg	video/mpg
.mpga	audio/rn-mpeg	
.mpp	application/vnd.ms-project
.mps	video/x-mpeg	
.mpt	application/vnd.ms-project
.mpv	video/mpg	
.mpv2	video/mpeg
.mpw	application/vnd.ms-project	
.mpx	application/vnd.ms-project
.mtx	text/xml	
.mxp	application/x-mmxp
.net	image/pnetvue	
.nrf	application/x-nrf
.nws	message/rfc822	
.odc	text/x-ms-odc
.out	application/x-out	
.p10	application/pkcs10
.p12	application/x-pkcs12	
.p7b	application/x-pkcs7-certificates
.p7c	application/pkcs7-mime	
.p7m	application/pkcs7-mime
.p7r	application/x-pkcs7-certreqresp	
.p7s	application/pkcs7-signature
.pc5	application/x-pc5	
.pci	application/x-pci
.pcl	application/x-pcl	
.pcx	application/x-pcx
.pdf	application/pdf	
.pdf	application/pdf
.pdx	application/vnd.adobe.pdx	
.pfx	application/x-pkcs12
.pgl	application/x-pgl	
.pic	application/x-pic
.pko	application/vnd.ms-pki.pko	
.pl	    application/x-perl
.plg	text/html	
.pls	audio/scpls
.plt	application/x-plt	
.png	image/png
.png	application/x-png	
.pot	application/vnd.ms-powerpoint
.ppa	application/vnd.ms-powerpoint	
.ppm	application/x-ppm
.pps	application/vnd.ms-powerpoint	
.ppt	application/vnd.ms-powerpoint
.ppt	application/x-ppt	
.pr	    application/x-pr
.prf	application/pics-rules	
.prn	application/x-prn
.prt	application/x-prt	
.ps	    application/x-ps
.ps	    application/postscript	
.ptn	application/x-ptn
.pwz	application/vnd.ms-powerpoint	
.r3t	text/vnd.rn-realtext3d
.ra	    audio/vnd.rn-realaudio	
.ram	audio/x-pn-realaudio
.ras	application/x-ras	
.rat	application/rat-file
.rdf	text/xml	
.rec	application/vnd.rn-recording
.red	application/x-red	
.rgb	application/x-rgb
.rjs	application/vnd.rn-realsystem-rjs	
.rjt	application/vnd.rn-realsystem-rjt
.rlc	application/x-rlc	
.rle	application/x-rle
.rm	    application/vnd.rn-realmedia	
.rmf	application/vnd.adobe.rmf
.rmi	audio/mid	
.rmj	application/vnd.rn-realsystem-rmj
.rmm	audio/x-pn-realaudio	
.rmp	application/vnd.rn-rn_music_package
.rms	application/vnd.rn-realmedia-secure	
.rmvb	application/vnd.rn-realmedia-vbr
.rmx	application/vnd.rn-realsystem-rmx	
.rnx	application/vnd.rn-realplayer
.rp	    image/vnd.rn-realpix	
.rpm	audio/x-pn-realaudio-plugin
.rsml	application/vnd.rn-rsml	
.rt	    text/vnd.rn-realtext
.rtf	application/msword	
.rtf	application/x-rtf
.rv	    video/vnd.rn-realvideo	
.sam	application/x-sam
.sat	application/x-sat	
.sdp	application/sdp
.sdw	application/x-sdw	
.sit	application/x-stuffit
.slb	application/x-slb	
.sld	application/x-sld
.slk	drawing/x-slk	
.smi	application/smil
.smil	application/smil	
.smk	application/x-smk
.snd	audio/basic	
.sol	text/plain
.sor	text/plain	
.spc	application/x-pkcs7-certificates
.spl	application/futuresplash	
.spp	text/xml
.ssm	application/streamingmedia	
.sst	application/vnd.ms-pki.certstore
.stl	application/vnd.ms-pki.stl	
.stm	text/html
.sty	application/x-sty	
.svg	text/xml
.swf	application/x-shockwave-flash	
.tdf	application/x-tdf
.tg4	application/x-tg4	
.tga	application/x-tga
.tif	image/tiff	
.tif	application/x-tif
.tiff	image/tiff	
.tld	text/xml
.top	drawing/x-top	
.torrent	application/x-bittorrent
.tsd	text/xml	
.txt	text/plain
.uin	application/x-icq	
.uls	text/iuls
.vcf	text/x-vcard	
.vda	application/x-vda
.vdx	application/vnd.visio	
.vml	text/xml
.vpg	application/x-vpeg005	
.vsd	application/vnd.visio
.vsd	application/x-vsd	
.vss	application/vnd.visio
.vst	application/vnd.visio	
.vst	application/x-vst
.vsw	application/vnd.visio	
.vsx	application/vnd.visio
.vtx	application/vnd.visio	
.vxml	text/xml
.wav	audio/wav	
.wax	audio/x-ms-wax
.wb1	application/x-wb1	
.wb2	application/x-wb2
.wb3	application/x-wb3	
.wbmp	image/vnd.wap.wbmp
.wiz	application/msword	
.wk3	application/x-wk3
.wk4	application/x-wk4	
.wkq	application/x-wkq
.wks	application/x-wks	
.wm	    video/x-ms-wm
.wma	audio/x-ms-wma	
.wmd	application/x-ms-wmd
.wmf	application/x-wmf	
.wml	text/vnd.wap.wml
.wmv	video/x-ms-wmv	
.wmx	video/x-ms-wmx
.wmz	application/x-ms-wmz	
.wp6	application/x-wp6
.wpd	application/x-wpd	
.wpg	application/x-wpg
.wpl	application/vnd.ms-wpl	
.wq1	application/x-wq1
.wr1	application/x-wr1	
.wri	application/x-wri
.wrk	application/x-wrk	
.ws	    application/x-ws
.ws2	application/x-ws	
.wsc	text/scriptlet
.wsdl	text/xml	
.wvx	video/x-ms-wvx
.xdp	application/vnd.adobe.xdp	
.xdr	text/xml
.xfd	application/vnd.adobe.xfd	
.xfdf	application/vnd.adobe.xfdf
.xhtml	text/html	
.xls	application/vnd.ms-excel
.xls	application/x-xls	
.xlw	application/x-xlw
.xml	text/xml	
.xpl	audio/scpls
.xq	    text/xml	
.xql	text/xml
.xquery	text/xml	
.xsd	text/xml
.xsl	text/xml	
.xslt	text/xml
.xwd	application/x-xwd	
.x_b	application/x-x_b
.sis	application/vnd.symbian.install	
.sisx	application/vnd.symbian.install
.x_t	application/x-x_t	
.ipa	application/vnd.iphone
.apk	application/vnd.android.package-archive	
.xap	application/x-silverlight-app

相关文章:

spring boot 下载resources下的静态文件为流格式

废话不多说,直接上代码 一、下载逻辑 public void downAppApk(HttpServletResponse response){ClassPathResource classPathResource new ClassPathResource("app/xxxxxx.apk");if (!classPathResource.exists()) {throw new BusinessException("安…...

HTML渲染过程

整个渲染过程: 将 URL 对应的各种资源,通过浏览器渲染引擎的解析,输出可视化的图像。 基本概念: HTML 解释器:解析html语言、将html文本翻译成dom树; CSS 解释器:解析css语言,给…...

[已解决]llegal target for variable annotation

llegal target for variable annotation 问题 变量注释的非法目标 思路 复制时编码错误,自己敲一遍后正常运行 #** 将垂直知识加入prompt,以使其准确回答 **# prompt_templates { # "recommand":"用户说:__INPUT__ …...

nodejs基于vue小型企业银行账目管理系统

这就产生了以台式计算机为核心的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,在银行帐目管理之中的应用日益增加 且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行帐目管理。 3.1 银行帐目管理系统功能模块 …...

pointnet和pointnet++点云分割和分类

目录 1. pointnet 1.1 点云数据的特点 1.2 模型功能 1.3 网络结构 1.3.1 分类网络 1.3.2 分割网络 2. pointnet 2.1 模型 2.2 sampling layer组件 2.3 grouping layer 2.4 pointnet 1. pointnet 1.1 点云数据的特点 (1)无序性&#xff1a…...

Docker-compose和Consul

目录 1、docker-compose 简介 1.1 Docker-compose 简介 2、compose 部署 2.1 Docker Compose 环境安装 2.2 YAML 文件格式及编写注意事项 * * * * 2.3 Docker Compose配置常用字段 2.4 Docker Compose 常用命令 2.5 Docker Compose 文件结构 3、Consul 3.1 什么是…...

AFL模糊测试+GCOV覆盖率分析

安全之安全(security)博客目录导读 覆盖率分析汇总 目录 一、代码示例 二、afl-cov工具下载 三、编译带覆盖率的版本并启动afl-cov 四、AFL编译插桩并运行afl-fuzz 五、结果查看 AFL相关详见AFL安全漏洞挖掘 GCOV相关详见GCOV覆盖率分析 现将两者结合,即进…...

leetcode 965.单值二叉树

/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ //遍历判断函数 bool TreeCompare(struct TreeNode* root,int x) {if(root NULL)return true;if(root->val ! x)return false…...

云计算:掌控未来,一触即发!

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…...

Mybatis对数据库进行增删查改以及单元测试

这篇写的草率了,是好几天前学到,以后用来自己复习 UserInfo import lombok.Data;Data public class UserInfo {private int id;private String name;private int age;private String email;//LocalDateTime可用于接收 时间}Mapper UserMapper pack…...

.bat 批处理 - 查看 MySQL 状态然后启动或关闭

我的 MySQL 服务名为 MySQL80,具体的以实际为准: echo off setlocal:check_status cls sc query MySQL80 | find "RUNNING" > nul 2>&1 if %errorlevel%0 (echo Current status of MySQL service: Running ) else (echo Current st…...

跳转传参有几种方式

在Vue Router中,实现路由跳转并传参有以下几种方式: 1. 路由参数(Route Params): 可以通过在路由配置中定义动态的占位符(即路由参数),并在跳转时通过URL路径来传递参数。这种方式适…...

DVWA靶场Medium难度部分解析

前言 好久没做题,不想吹牛逼了,消停做点题QAQ Vulnerability: Command Injection 这题不咋难,老Ping题了 输个分号ls试试,没回显即被Ban了,试试别的,例如|或者&& 出了,看看源代码 把…...

SVG图形

什么是SVG SVG(Scalable Vector Graphics)是一种用于描述二维矢量图形的XML 格式文件。它是一种用于在网络上显示图形的开放标准,旨在与Web上的其他技术(如HTML和CSS)集成,并支持在不失真的情况下缩放和调…...

冒泡排序和简答选择排序

冒泡排序 一种典型的交换排序 类似水冒泡&#xff0c;大元素经不断的交换由水底慢慢的浮出 从头到尾&#xff0c;循环比较两相邻的元素 大的元素移到后面&#xff0c;小的放前面-每次循环&#xff0c;大的元素会排到最后 代码如下&#xff1a; #include<stdio.h> …...

leetcode3. 无重复字符的最长子串 [滑动窗口]

题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释:…...

软件工程与计算总结(十六)详细设计的设计模式

一.设计模式基础 某种意义上来说&#xff0c;设计模式就是设计经验的总结~ 设计模式不是简单的经验总结&#xff0c;更不是无中生有&#xff0c;它是经过实践反复检验、能解决关键技术难题、有广泛应用前景和能够显著提高软件质量的有效的经验总结。 每个模式都不是独立的&a…...

List集合拆分为多个List

list 拆分 目录概述需求&#xff1a; 设计思路实现思路分析1.list 拆分是2.用stream的parallel实现list的分批处理3.使用stream的parallel实现list的分批处理 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full bus…...

Hadoop3教程(十三):MapReduce中的分区

文章目录 &#xff08;96&#xff09; 默认HashPartitioner分区&#xff08;97&#xff09; 自定义分区案例&#xff08;98&#xff09;分区数与Reduce个数的总结参考文献 &#xff08;96&#xff09; 默认HashPartitioner分区 分区&#xff0c;是Shuffle里核心的一环&#xf…...

笔记本Win10系统一键重装操作方法

笔记本电脑已经成为大家日常生活和工作中必不可少的工具之一&#xff0c;如果笔记本电脑系统出现问题了&#xff0c;那么就会影响到大家的正常操作。这时候就可以考虑给笔记本电脑重装系统了。接下来小编给大家介绍关于一键重装Win10笔记本电脑系统的详细步骤方法。 推荐下载 系…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...