java设置ContentType,设置下载文件名称

2023-05-16

java设置ContentType,设置下载文件名称

  • 根据上传文件名设置ContentType
  • 设置下载文件名称

根据上传文件名设置ContentType

几种常用上传文件如下:

private String setObjectMetadata(String fileName){
        // 指定上传的内容类型。内容类型决定浏览器将以什么形式、什么编码读取文件。如果没有指定则根据文件的扩展名生成,如果没有扩展名则为默认值application/octet-stream。
        String type = fileName.substring(fileName.indexOf(".") + 1);
        String contentType = null;
        if (Objects.equals(type, "jpg") || Objects.equals(type, "JPG")) {
            contentType = "image/jpeg";
        }else if(Objects.equals(type, "png") || Objects.equals(type, "PNG")) {
            contentType =  "image/png";
        }else if(Objects.equals(type, "xlsx") || Objects.equals(type, "xls")){
            contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        }else if(Objects.equals(type, "txt")){
            contentType = "text/plain; charset=utf-8";
        }else if(Objects.equals(type, "pdf")){
            contentType = "application/pdf";
        }else if(Objects.equals(type, "doc")){
            contentType = "application/msword";
        }else if(Objects.equals(type, "docx")){
            contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
        }else if(Objects.equals(type, "zip")){
            contentType = "application/zip";
        }else{
            contentType = "application/octet-stream";
        }
        return contentType ;
    }

更多类型参考:https://tool.oschina.net/commons

设置下载文件名称

 //下载文件
 String contentDisposition = String.format("attachment; filename=%s", UriUtils.encode(fileName, "UTF-8"));
 //浏览器内嵌显示
 contentDisposition = String.format("inline; filename=%s", UriUtils.encode(fileName, "UTF-8"));
 response.setHeader("Content-disposition", contentDisposition);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java设置ContentType,设置下载文件名称 的相关文章

  • 使用 Java 的 Apache Http 摘要身份验证

    我目前正在开发一个 Java 项目 但无法使 http 摘要身份验证正常工作 我尝试使用 Apache 网站 但没有帮助 我有一个需要 HTTP 摘要身份验证的网站 DefaultHttpClient httpclient new Defa
  • java中监视目录变化

    我正在使用 WatchService 来监视目录中的更改 特别是目录中新文件的创建 下面是我的代码 package watcher import java nio file import static java nio file Stand
  • Java:扩展类并实现具有相同方法的接口

    可能无法完成以下操作 我收到编译错误 继承的方法 A doSomthing int 无法隐藏 B 中的公共抽象方法 public class A int doSomthing int x return x public interface
  • java.lang.ClassNotFoundException:javax.mail.MessagingException

    我想使用 eclipse 将电子邮件从我的 gmail 帐户发送到另一个邮件帐户 我使用 apache tomcat 7 0 34 作为我的 Web 服务器 并使用端口 8080 作为 apache 服务器 HTTP 1 1 并使用 JRE
  • 与 Eclipse 中的 Java Content Assist 交互

    作为我的插件项目的一部分 我正在考虑与 Eclipse 在 Java 文件上显示的内容辅助列表进行交互 我正在尝试根据一些外部数据对列表进行重新排序 我看过一些有关创建新内容辅助的教程 但没有看到有关更改现有内容辅助的教程 这可能吗 如果是
  • 为什么即使我的哈希码值相同,“==”也会返回 false

    我写了一个像这样的课程 public class HashCodeImpl public int hashCode return 1 public static void main String args TODO Auto generat
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • Mockito 使用 @Mock 时将 Null 值注入到 Spring bean 中?

    由于我是 Spring Test MVC 的新手 我不明白这个问题 我从以下代码中获取了http markchensblog blogspot in search label Spring http markchensblog blogsp
  • 如何在单个查询中搜索 RealmObject 的 RealmList 字段

    假设我有一堂课 public class Company extends RealmObject private String companyId private RealmList
  • 断言 Kafka 发送有效

    我正在使用 Spring Boot 编写一个应用程序 因此要写信给 Kafka 我这样做 Autowired private KafkaTemplate
  • 提高 PostgreSQL 1 亿数据左连接查询性能

    我在用Postgresql 9 2 version Windows 7 64 bit RAM 6GB 这是一个Java企业项目 我必须在我的页面中显示订单相关信息 有三个表通过左连接连接在一起 Tables TV HD 389772 行 T
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • 蓝牙发送和接收文本数据

    我是 Android 开发新手 我想制作一个使用蓝牙发送和接收文本的应用程序 我得到了有关发送文本的所有内容逻辑工作 但是当我尝试在手机中测试它时 我看不到界面 这是Main Activity Code import android sup
  • 将 JavaFX FXML 对象分组在一起

    非常具有描述性和信息性的答案将从我这里获得价值 50 声望的赏金 我正在 JavaFX 中开发一个应用程序 对于视图 我使用 FXML
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • 在java中以原子方式获取多个锁

    我有以下代码 注意 为了可读性 我尽可能简化了代码 如果我忘记了任何关键部分 请告诉我 public class User private Relations relations public User relations new Rela
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • partitioningBy 必须生成一个包含 true 和 false 条目的映射吗?

    The 分区依据 https docs oracle com javase 8 docs api java util stream Collectors html partitioningBy java util function Pred
  • Java 正则表达式中的逻辑 AND

    是否可以在 Java Regex 中实现逻辑 AND 如果答案是肯定的 那么如何实现呢 正则表达式中的逻辑 AND 由一系列堆叠的先行断言组成 例如 foo bar glarch 将匹配包含所有三个 foo bar 和 glarch 的任何
  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho

随机推荐

  • MyBatis Mapper 传递多个参数

    在pojo类对应的映射文件中 xff0c 对应的参数类型可以省略 传递方式 1 接口正常书写 xff0c 映射文件中SQL语句的占位符必须用 arg0 agr1 或param1 param2 接口 xff1a public Customer
  • MyBatis一对多的左连接查询、分步查询以及插入和删除操作

    例如有两张表 xff0c 分别是客户表和订单表 xff0c 一个客户有多个订单 xff0c 一个订单属于一个客户 两个实体类Customer Order 如下 xff1a package com itlike domain import l
  • 二叉树的构建及递归遍历

    定义结构体 public class Node int value Node left Node right public Node int value Node left Node right this value 61 value th
  • MySQL 多对多条件查询

    两个表 user和role 中间表是user role 查询用户和角色的对应关系 select res user name r role name from select u user name ur role id from user a
  • spring Bean相关配置及对象的生命周期

    名称与表示 xff1a id 使用了约束中的唯一约束 xff0c 里面不能出现特殊字符 name 没有使用唯一约束 xff0c 可以出现特殊字符 xff08 一般不使用 xff09 设置对象生命周期的方法 xff1a init method
  • 新博客开通

    xff01 xff5e 今天终于决定开博客了 并决定把全部觉得重要的东西都记录下来 每次都记录下来 然后一段时间再来总结一次 xff5e 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • mybatis 代码生成器及多表联查的细节

    在使用mybatis代码生成器时 xff0c 若生成的字段要为布尔类型 xff0c 则在设计表时 xff0c 将字段属性设置为tinyint 长度设为1 这样 生成的domain中的 相应字段类型为布尔类型 如数据库中的字段类型为date或
  • yml自定义属性和值

    测试类 xff1a import com spx App import com spx config MyProperties import org junit Test import org junit runner RunWith im
  • 导出数据提示--secure-file-priv选项问题的解决方法

    mysql可使用 into outfile 参数把表中数据导出到csv xff0c 例如可用以下命令把user表的数据导出到user csv 1 select from user into outfile 39 tmp user csv 3
  • 如何在 Ubuntu 22.04 LTS 中添加、删除和授予用户 Sudo 权限

    本教程介绍如何在 Ubuntu Linux 操作系统中添加 删除和授予用户Sudo权限 1 什么是Sudo xff1f 在 Linux 和 Unix 操作系统中 xff0c 有一个特殊的用户叫做 root xff0c 用户可以在root类
  • 数据库-查询选修了3门课程以上的学生的学号

    Aim 查询选修了3门课程以上的学生的学号 Data 其中Sno字段为student表的外键 xff0c Cno字段为course表的外键 ScID int Sno char 7 Cno char 10 Grade int isTec va
  • Docker 构建镜像(docker build)

    版权所有 xff0c 未经许可 xff0c 禁止转载 章节 Docker 介绍Docker 和虚拟机的区别Docker 安装Docker HubDocker 镜像 xff08 image xff09 Docker 容器 xff08 cont
  • Linux常用指令--防火墙

    Linux在防火墙中打开端口 xff1a 添加端口 sudo firewall cmd add port 61 1431 tcp permanent sudo firewall cmd add port 61 1432 tcp perman
  • 阿里云 服务器 安全组规则配置 无效怎么办?

    引子 买了一台阿里云 服务器 项目部署后 用公网ip死活访问不了 改安全组规则 也没用经查阅 资料后 发现是防火墙问题 解决方案 服务器 os ubuntu 一般情况下 xff0c ubuntu安装好的时候 xff0c iptables会被
  • 三种方法求最大公约数GCD及求最小公倍数LCM

    使用三种方法求最大公约数 1 辗转相除法 span class hljs comment 辗转相除法求最大公约数 span span class hljs keyword public span span class hljs keywor
  • [php笔记]html的表单

    最近刚完成一个asg 是一个简单的学生 xff0c 课程的管理系统 基于web的 xff0c 利用LAMP linux 43 apache 43 mysql 43 php xff09 实现的一个小的系统 由于之前没太接触过php 这次开发用
  • 用Python来查询聊天记录

    前言 用Python来查询聊天记录 代码 import re def Start First Date Second Date First Name Second Name First 61 re compile f 39 First Da
  • [指南] 如何在Windows 10/11 WSL上安装Ubuntu 21.10等新版本

    WSL子系统目前已经支持多个Linux 发行版 xff0c 不过什么时候发布更新这需要开发商或社区及时适配然后上架商店 例如目前在微软商店里可以下载Ubuntu和Ubuntu 20 04 LTS长期支持版 xff0c Ubuntu 21 1
  • https免费证书获取方式

    来此加密 1 前往来此加密官网申请证书https letsencrypt osfipin com 2 申请证书 xff0c 3 验证证书 xff1a dns验证 xff1a 前往所在云dns解析服务https认证 xff1a 使用nginx
  • java设置ContentType,设置下载文件名称

    java设置ContentType xff0c 设置下载文件名称 根据上传文件名设置ContentType设置下载文件名称 根据上传文件名设置ContentType 几种常用上传文件如下 xff1a span class token key