Java jiraClient上传附件不能在浏览器预览的问题分析

news2024/11/26 22:37:29

最近测试的同学反馈问题说使用平台的报bug上传视频的附件以后,然后在jira上确没有办法通过点击附件进行预览,而需要下载下来才能够查看。但是如果是直接在jira上进行上传附件就不会有这个问题

如果说不了解具体原因的,其实就会觉得这个问题非常的有意思,因为就是一个文件上传,为啥还能够导致一个能够在浏览器打开预览,而一个不行呢。

带着这个问题,可能我们先了解一个问题就是 **🚢🚢🚢 浏览器打开图片链接为什么有时候是预览有时候是下载 这篇文章其实就很好的解释了为什么会出现这样子的现象,归根到底是因为 Content-Disposition 的原因,

但是以上的内容还是没有解释上传的过程中有什么问题,还是看下 jiraClient的上传文件的实际是什么样的吧。

private JSON request(HttpEntityEnclosingRequestBase req, File file)
    throws RestException, IOException {
    if (file != null) {
        File fileUpload = file;
        req.setHeader("X-Atlassian-Token", "nocheck");
        MultipartEntity ent = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, null,
                Charset.forName("UTF-8"));
        ent.addPart("file", new FileBody(fileUpload, "application/octet-stream", "UTF-8"));
        req.setEntity(ent);
    }
    return request(req);
}

这个地方有一个地方比较明显也就是 new FileBody(fileUpload, "application/octet-stream", "UTF-8")); 这个地方是在设置文件的MIME , 那是因为这个的原因吗?
在这里插入图片描述

所以确实是因为这个类型导致的, 所以不应该直接写死这个值,应该要根据具体的文件进行处理即可了。这里就不做详细说明 ,贴具体的代码改动就好了

private JSON request(HttpEntityEnclosingRequestBase req, File file) throws RestException, IOException {
        if (file != null) {
            req.setHeader("X-Atlassian-Token", "nocheck");
            MultipartEntity ent = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE, (String)null, Charset.forName("UTF-8"));
            Tika tika = new Tika();
            String mimeType = tika.detect(file);
            ent.addPart("file", new FileBody(file, mimeType, "UTF-8"));
            req.setEntity(ent);
        }

        return this.request(req);
    }

结论

Java jiraClient上传附件不能在浏览器预览的问题通常是由于MIME类型不正确造成的。通过找到MIME类型并将其修改为正确的类型,我们可以轻松地解决这个问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/573538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Top命令参数解释

TOP命令 这是一个Linux系统下 top 命令所输出的进程监控信息。以下是各列含义: top - 09:52:15:当前时间。 up 27 min:系统已经运行的时长。 2 users:当前有2个用户登录到系统上。 load average: 0.97, 0.41, 0.21:系…

Git进阶+Jenkins入门

文章目录 1 Git进阶——GitFlow工作流程1.1 master与develop分支1.1.1 master1.1.2 develop 1.2 feature分支1.3 Release分支1.4 hotfix分支1.1.3 1 Git进阶——GitFlow工作流程 1.1 master与develop分支 1.1.1 master master:发布上线分支,基于master打…

c++调用dll出现LNK2001 无法解析的外部符号

先说说下正常的dll。 动态库显试调用一般3个文件.h .lib .dll ,隐式调用 只需要2个文件:.h(函数定义) .dll 静态库2个文件:.h .lib 先说C正常dll显式调用 #include "BYD_MES/MES2Interface.h" //#include 是以当前…

HTML表单标签form分析

说明:在html的标签中,表单标签与后台联系密切,像用户登录、注册,都是用到页面的表单标签,用户将信息填入到表单中,提交到后端业务中校验处理,再将结果反馈给前端页面。 表单内的标签分别有&…

ChatGPT国内免费使用的方法有哪些?分享几个网内可用的免费的ChatGPT网页版

目录 一、ChatGpt是什么? 二、ChatGPT国内免费使用的方法: 第一点:电脑端 第二点:手机端 三、结语: 一、ChatGpt是什么? ChatGPt是美国OpenAI [1] 研发的聊天机器人程序 。更是人工智能技术驱动的自然语言…

【学习日记2023.5.26】 之 客户端之完善缓存和购物车模块

文章目录 7. 用户端之完善缓存和购物车模块7.1 缓存菜品7.1.1 问题说明7.1.2 实现思路7.1.3 代码开发7.1.4 功能测试7.1.5 提交代码 7.2 缓存套餐7.2.1 Spring Cache7.2.1.1 介绍2.1.2 常用注解7.2.1.3 入门案例 7.2.2 实现思路7.2.3 代码开发7.2.4 功能测试7.2.5 提交代码 7.3…

14-C++面向对象(单例模式、const成员、浅拷贝、深拷贝)

单例模式 单例模式:设计模式的一种,保证某个类永远只创建一个对象 构造函数\析构函数 私有化 定义一个私有的static成员变量指向唯一的那个单例对象(Rocket* m_rocket) 提供一个公共的访问单例对象的接口&#xff0…

[组合数学] 容斥原理polya定理

数学 A 170 物理 B130 化学C120 A ∩ B 45 A ∩ C 20 B ∩ C 22 A ∩ B ∩ C 3 A\cap B 45\quad A\cap C20 \quad B\cap C 22 \quad A\cap B\cap C 3 A∩B45A∩C20B∩C22A∩B∩C3 ∣ A ∪ B ∪ C ∣ A B C − A ∩ B − B ∩ C − A ∩ C A ∩ B ∩ C 170 130 …

vcruntime140.dll丢失怎么办?怎么解决vcruntime140.dll丢失的问题

当您运行一个需要此文件的程序时,如果您的系统中不存在这个文件,会提示出错信息“找不到vcruntime140.dll”或“vcruntime140.dll丢失”。这种情况下,您需要解决这个问题,才能继续运行此应用程序。我们将介绍vcruntime140.dll丢失…

python基于协同过滤推荐算法的电影观后感推荐管理系统的设计

本课题所设计的影单管理系统,使用B/S架构,Python语言进行开发,它的优点代码不能从浏览器查看,保密性非常好,比其他的影单管理更具安全性。Python还容易修改和调试,毕竟影视是在不断发展过程中,难…

【P34】JMeter ForEach控制器(ForEach Controller)

文章目录 一、ForEach控制器(ForEach Controller)参数说明二、准备工作三、测试计划设计 一、ForEach控制器(ForEach Controller)参数说明 可以对一个组变量进行循环迭代;该组件通常与后置处理器中的 JSON 提取器、正…

自动化测试工具——Selenium详解

前言 Selenium是一个用于Web应用程序测试的工具。是一个开源的Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium可以直接运行在浏览器上,…

AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能

AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能系统 目录 人工智能竞赛【精选实战作品】之《基于计算机视…

【网络编程一】初识网络:IP与端口号 网络模型

目录 🌟需要知道 一、基础概念 🌈1、IP地址与端口号 🌈2、五元组 二、协议分层 🌈1、OSI七层网络网络模型 🌈2、TCP/IP五层(四层)模型 🌈3、封装和分用(重点!) &…

Kotlin 协程中的并发问题:我明明用 mutex 上锁了,为什么没有用?

前言 最近在接手的某项目中,主管给我发来了一个遗留以久的 BUG,让我看看排查一下,把它修复了。 项目的问题大概是在某项业务中,需要向数据库插入数据,而且需要保证同种类型的数据只被插入一次,但是现在却…

每日一练 | 网络工程师软考真题 Day13

阅读以下说明,回答以下问题1至问题6。 【说明】 某公司的两个部门均采用Windows 2003的NAT功能共享宽带连接访问Internet,其网络结构和相关参数如图2-1所示。ISP为该公司分配的公网IP地址段为202.117.12.32/29。 【问题1】在Windows 2003中,…

NodeJS Crypto加密⑤

文章目录 ✨文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持😘前言NODE内置模块Zlib模块 createGzip(CreateGzip方法 异步)Crypto加密模块 getHashes 方法 createHash 方法 createHmac 方法…

野火RA6M5开发板 DHT11温湿度传感器 OLED显示测试学习

野火RA6M5开发板 DHT11温湿度传感器 OLED显示测试学习 DHT11温湿度传感器 DHT11是一款有已校准数字信号输出的温湿度传感器。 精度湿度5%RH, 温度2℃,量程湿度20-90%RH, 温度0~50℃。 更多DHT11信息请参考:https://baike.sogou…

img[:, :, ::-1] 通俗理解

👨‍💻个人简介: 深度学习图像领域工作者 🎉工作总结链接:https://blog.csdn.net/qq_28949847/article/details/128552785 链接中主要是个人工作的总结,每个链接都是一些常用demo&#xff0c…

Redis5.0+ Redis集群水平扩容|节点删除

文章目录 1. 背景2. Redis集群水平扩展2.1 启动集群2.2 连接其中一个节点2.3 配置新节点2.4 启动新节点2.5 配置8007节点加入集群,成为主节点2.6 增加子节点2.7 分配hash槽2.8 检查 Redis 集群 3. 节点删除4. redis集群命令帮助5. 参考文献 1. 背景 之前搭建了Redi…