精华内容
下载资源
问答
  • 下载时文件名乱码和文件大小未知的问题(FireFox)
    千次阅读
    2018-02-20 15:32:36

    下载文件时文件名乱码和文件大小未知

    这个问题引发自标准兼容问题
    FireFox 对规范要求严格, 而其他浏览器相对宽容, 所以其他浏览器会兼容, 而FireFox则不做处理
    解决方案是添加 Content-Disposition 响应头

    快速解决文件名乱码

    传统 File 类型文件写法( java 1.4 ~ java 6 ):

    File file = getFile();
    String filename = java.net.URLEncoder.encode(file.getName(), "UTF-8");
    response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + filename);
    

    新IO Path 类型文件写法( java 7 ~ java 13 ):

    Path file = Paths.get("E:\\Downloads\\测试文件.pdf");
    String filename = file.getFileName().toString();
    filename = URLEncoder.encode(filename, StandardCharsets.UTF_8.displayName());
    String disposition = "attachment;filename*=utf-8'zh_cn'" + filename;
    response.addHeader("Content-Disposition", disposition);
    

    重点

    重点在这一行:

     "attachment;filename*=utf-8'zh_cn'" + filename
    

    filename*=utf-8'zh_cn' 后面直接加文件名

    快速解决文件大小未知

    传统IO

    File file = new File("E:\\Downloads\\测试文件.pdf");
    long fileSize = file .length();
    response.setContentLength((int) fileSize);
    

    新IO

    Path file = Paths.get("E:\\Downloads\\测试文件.pdf");
    long fileSize = Files.size(file);
    response.setContentLength((int) fileSize);
    

    重点

    给 response 设置 Content-Length 头就可以解决这个问题

    response.setContentLength((int) fileSize);
    

    完整类代码

    package cc.momas;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.net.URLEncoder;
    import java.nio.charset.StandardCharsets;
    import java.nio.file.Files;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    
    /**
     * @author Sod-Momas
     * @since 2020.01.16
     **/
    @WebServlet(value = "/download")
    public class DownloadServlet extends HttpServlet {
        @Override
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // 解决乱码,一般写在过滤器 filter里
            request.setCharacterEncoding(StandardCharsets.UTF_8.displayName());
            response.setCharacterEncoding(StandardCharsets.UTF_8.displayName());
            response.setContentType("text/html;charset=utf-8");
    
            // 获取文件
            Path file = Paths.get("E:\\Downloads\\测试文件.pdf");
            // 检测文件是否存在
            if (Files.notExists(file)) {
                response.getWriter().write("指定文件不存在:" + file.toAbsolutePath());
                return;
            }
    
            // 获取文件名
            String filename = file.getFileName().toString();
            // 获取文件大小,单位是byte
            long fileSize = Files.size(file);
    
            // 将文件名URL编码
            filename = URLEncoder.encode(filename, StandardCharsets.UTF_8.displayName());
            // 添加触发下载的前缀
            // 规范参考 : Content-Disposition https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition
            String disposition = "attachment;filename*=utf-8'zh_cn'" + filename;
    
            // 添加 Content-Disposition 告诉浏览器数据展现的方式是附件下载,并且提供文件名
            response.addHeader("Content-Disposition", disposition);
            // 添加 Content-Length 告诉浏览器数据的长度,单位是 byte
            response.setContentLength((int) fileSize);
            // 添加 Content-Type 告诉浏览器这是一个二进制流
            response.setContentType("application/octet-stream");
    
            // 把文件从本地复制到 response 输出流输出给前端
            Files.copy(file, response.getOutputStream());
        }
    }
    
    

    完整项目示例

    请访问我的码云仓库获取最新代码:

    https://gitee.com/Sod-Momas/servlet-download-example

    参考资料

    博客

    MDN

    • Content-Disposition Content-Disposition 响应头的作用
    • Content-Type Content-Type 实体头的作用
    • Content-Length Content-Length 是一个实体消息首部,用来指明发送给接收方的消息主体的大小,即用十进制数字表示的八位元组的数目。

    RFC

    更多相关内容
  • idea中的application.yml文件类型被修改时会以文本样式显示 解决方法 file—> setting—->> File Types—>> Text 删除相应的信息 然后点击ok就恢复了 如果出现文件类型未知,如下 操作如下: file...

    idea中的application.yml文件类型被修改时会以文本样式显示
    在这里插入图片描述
    解决方法
    file—> setting—->> File Types—>> Text 删除相应的信息
    在这里插入图片描述
    然后点击ok就恢复了
    如果出现文件类型未知,如下
    在这里插入图片描述
    操作如下:
    file—> setting—->> File Types—>>YAML
    添加*.yml,点击ok即可
    在这里插入图片描述

    展开全文
  • "这个压缩文件格式未知或者数据已经被损坏"解决方法1.如果是从网上下载的压缩文件,很有可能是网站提供的本身就是损坏的压缩文件。如果重新下载之后仍然是损坏的,可以从其他网站下载。2.尝试使用WinRAR软件自身的...

    "这个压缩文件格式未知或者数据已经被损坏"解决方法

    1.如果是从网上下载的压缩文件,很有可能是网站提供的本身就是损坏的压缩文件。如果重新下载之后仍然是损坏的,可以从其他网站下载。

    2.尝试使用WinRAR软件自身的修复功能来修复损坏的文件,打开WinRAR软件,选中要修复的RAR压缩文件,单击工具栏上“修复压缩文件”,在弹出的对话框中选择“修复后文件保存的路径”,然后单击“确定”,这种方法成功率不高,一般要多试几次。

    71f8e65488f1361acde94626812827c9.png

    3.Advanced RAR Repair这款压缩文件修复工具,可以对损坏的RAR格式的压缩文件进行扫描以恢复里面的数据。它采用多种算法,还可以对文件的一致性进行检查,以提高恢复数据的可靠性。

    4.以上方法都不行,而你的压缩包又不是一个大的软件,而是有很多个文件的(如图片集),可以用以下方法:

    1)选择你的RAR压缩包,并在其上单击鼠标右键,出现快捷菜单,选择菜单中的“解压文件”命令。

    2)在弹出的“解压路径和选项”窗口中,选择文件解包后放置的具体路径,然后选择“杂项”分组框中的“保留被损坏的文件”复选框。这是关键的一步,解出未被破坏文档主要靠它。

    bbd405d3f3f0aef6389918636a0177fb.png

    3)点击“确定”按钮,开始解压操作。当出现解压错误提示后略过错误提示继续进行,我们就可以得到所有未被破坏的文档了。

    时间:2015-03-10 05:39 / 作者:百科全说

    5a63401d8fa2306cf372be578c407841.gif

    在win7电脑中必须安装网卡驱动才可以连接上网,但是有些用户反馈说安装网卡驱动后无法搜索到附近的wifi信号,怎么回事呢?这是因为没启动wlan autoconfig服务引起的,怎么办呢?再启动"wlan autoconfig"服务的时候提示:"错误1747:未知的身份验证服务"有什么解决方法?下面小编给大家分享具体解决方法. 具体步骤: 1.按下"Win+R"组合键打开运行,在框中输入:regedit 按下回车键打开注册表编辑器: 2.依次展开

    5a63401d8fa2306cf372be578c407841.gif

    如今有不少用户都将系统升级到了Win10 10586,但是部分用户升级系统后发现,在迅雷等下载软件中直接打开Winrar压缩文件,会弹出位置不可用的错误提示,虽然点击确定后,文件依然能打开,但老是弹出错误还是很不方便.这该怎么办呢?下面小编就向大家介绍Windows10系统打开WinRAR压缩文件时提示“位置不可用”的解决方法,一起来看看了解下吧! 解决方法: 1.打开文件夹:C:\Windows\System32\config\systemprofile, 2.然后新建名为“Desktop”的

    5a63401d8fa2306cf372be578c407841.gif

    当用户使用iTunes尝试下载音乐时,如果iTunes Music文件夹或其中某个文件夹的权限不正确,或者文件夹不存在或在其位置上出现不完整的替身,则可能发生一些错误,包括“-5000”和“-35”. 将显示以下警告之一: “由于发生错误,无法查看已购买的音乐(-5000 错误).” “错误 (-35)” “iTunes Store 中发生错误.请稍后再试.” 当您尝试从 iTunes Store 下载购买的歌曲时可能会发生此类情况. 在 mac OS X 中,iTunes 可能出现此问题. 解

    已装有未知品牌墨粉这个问题官方就有解决方法,方法如下: 方法一:同时按住【开始】和【取消】键 3秒或以上 方法二:同时按住【确定】键和【停止】键 3秒或以上 京瓷打印机出现已装有未知品牌墨粉的错误是因为没有安装原装的墨粉盒,或者加粉导致的,建议使用京瓷原装墨粉盒,如果坚持要用的话请用上述的方法解除键已装有未知品牌墨粉的错误,继续打印。

    网上搜索了一下,似乎这个问题和NTFS分区有关系,在FAT32分区下就不会出现此问题。解决方法可以以管理员身份运行WinRAR软件,然后在软件里浏览选定文件再解压即可。 或者也可以在解压高级选项属性中去掉“设置文件安全信息”选项。如果还不行,找个FAT分区的U盘,复制到里面再解压。我是用上面以管理员身份运行解压就没提示错误了,操作环境是Windows 7系统和NTFS分区。 解决办法是,以管理员身份运行winrar程序,然后找到你要解压的压缩包再进行解压 因为对于某些压缩包,如果不以管理员身份运

    5a63401d8fa2306cf372be578c407841.gif

    点击选择默认程序后却出现“软件管理-打开未知文件”窗口,提示“无法打开”新建文件文...."您需要安装以下软件打开”,具体现象如下所示: 故障分析:这是由于安装了QQ电脑管家的结果,大家仍然可以点击“选择计算机上的程序”来打开程序列表. 解决方法: 1.软件管理中设置——“其他设置” 中取消“当你打开未知软件时,为你推荐合适的软件”选项: 2.这样设置后,Win7系统选择默认打开程序时就会恢复原样了. 备注:软件管理,可以从QQ电脑管家界面中打开. 以上就是对Win7系统打开默认程序出现“软件管

    一.什么是移动数据? 移动数据流量是指通过GPRS.EDGE.TD-SCDMA.HSDPA.LTE等移动通讯技术上网或使用相关数据增值业务所产生的数据流量. 二.移动数据的流量单位转换以及资费 移动数据流量单位转换关系: 1024Byte=1KB:1024KB=1MB :1024MB=1GB:1024GB=1TB 国内移动数据流量套餐外标准资费为0.01元/KB,不区分CMWAP.CMNET:国际及港澳台漫游状态下移动数据流量标准资费为:香港0.02元/KB,其他0.05元/KB 三.三星not

    5a63401d8fa2306cf372be578c407841.gif

    原因分析:可能是安装了软件或者是补丁,导致系统创建了还原点,导致压缩卷功能只能压缩后半部分可用的空间。 解决方法: 1. 出现此故障现象,先关闭系统保护功能,删除还原点。 具体方法如下: 1)进入系统属性,找到系统保护。如图: 2)选择配置,关闭系统保护,并且选择删除删除之前还原点,如图: 2. 做完禁用系统保护和删除还原点之后,如果C盘还是不能压缩,建议您备份数据,一键恢复系统。

    5a63401d8fa2306cf372be578c407841.gif

    360压缩软件如何设置关联电脑中所有的压缩文件格式.不少用户选择在电脑中使用360压缩软件,其中有一个原因就是360压缩支持多种压缩文件格式.虽然常见的压缩文件格式大多是zip和rar,但还是有用户发现无法通过360压缩来解压一些格式的压缩文件.其实,可以通过相关的设置来使360压缩关联其他压缩文件格式. 1.查看360压缩软件是否为最新版本,如果不是则进行升级; 2.打开360压缩的安装目录,双击打开主程序; 3.点击界面右上角的"工具"; 4.在打开的菜单中点击"选项&q

    展开全文
  • 不知道各位读者老爷有没有试过IDM的自动下载功能,对于经常需要下载素材资源的朋友来说,一个个的选择图片或者其他什么素材...进入配置界面之后会默认跳转到“常规”界面,更改界面为“文件类型”界面。 图1:IDM配

    不知道各位读者老爷有没有试过IDM的自动下载功能,对于经常需要下载素材资源的朋友来说,一个个的选择图片或者其他什么素材来下载也是够烦的,IDM的自动下载功能可谓是十分好用,而且自动下载+批量下载+分类下载更配哦。

    有些朋友可能经常用IDM来自动下载一些视频文件,但其实它是可以添加很多文件格式的。

    1、进入IDM配置界面

    进入IDM主程序的界面之后,点击左上角的“下载”,选择最后一个选项:“选项”,进入配置界面。进入配置界面之后会默认跳转到“常规”界面,更改界面为“文件类型”界面。

    图1:IDM配置界面

    2、添加更多的自动下载文件格式

    进入IDM配置-文件类型界面之后,可以看到“自动开始下载下列类型的文件”的文本框,在文本框中输入想要自动下载的文件类型,如“PDF”等后缀,将其填写在文本框中后,点击保存。注意下方有“下列站点不要自动开始下载”的选项,可以将不想自动下载的网页填上去。

    图2:添加后缀类型界面

    3、保存后进入浏览器

    在上一步操作保存之后,重新进入浏览器中,只需要随意浏览网页的时候,用鼠标点击PDF后缀的下载链接之后IDM就会自动开始下载。非常方便。

    图3:下载文件信息界面

    除了PDF文件类型之外,还能够添加其他文件的后缀哦!

    展开全文
  • qq接收文件显示传输文件失败?

    千次阅读 2021-08-07 04:36:58
    2014-11-06QQ接收的文件为什么打不开主要有几方面的原因:1、文件传输安全等级为高(阻止接收任何文件)解决方案,点 qq菜单->系统设置->安全和隐私 打开一个对话框找到 文件传输安全 一栏 将 级别设为 中或低 ...
  • 你非常希望,像在文件夹中打开一个未知类型文件时有个弹出窗口可以看到一个软件列表并可以选择目标软件来打开它,但word中默认是不可以的,只有“激活”、“转换”等,不能解决问题。那么怎么办呢,就是安装一个...
  • U盘挂载失败提示 mount: 未知文件系统类型“ntfs”破解之法 系统环境 centos-7.6 如图所示 提示挂载失败 mount: 未知文件系统类型“ntfs” 分析原因确少安装ntfs内核模块 下面我们进行安装,软件下载地址 ...
  • 设置打开I文件的默认程序设置不一样,你的WINRAR设置了关联这个类型文件,默认就是用WINRAR打开了!!...安装一个东西但是在百度网盘里面是未知文件类型下载到电脑上就自动变成了一个压缩包。 ...
  •  在一台电脑把一个rar压缩文件复制到另一台电脑上,解压时出现“这个压缩文件格式未知或者数据已经被损坏”错误。 原因:  有可能是复制的不完全,压缩文件真的坏了,但也有可能是另一种情况,如在win10的系统中...
  • 提示说:未知文件格式 答案: 文件后缀是object,把它改成.obj然后再导入到C4D就可以了 如果你有其他答案或者问题,欢迎留言补充,万分感谢! 更多相关问题及答案可在下方链接搜索查看。 kuqijun.com/q-a 《C4D...
  • Android手机如何处理未知格式的文件

    千次阅读 2020-06-06 09:52:52
    其实我们打开手机自带的文件管理app,会发现里面有许多隐藏的文件,还有许多明明出现在video或image的文件夹下,但图标带问号的文件,即格式未知文件。这些文件很头疼,因为我们不知道里面的具体内容,删除了又怕...
  • Xftp上传文件显示未知错误

    千次阅读 2016-08-12 19:06:02
    今天修改了项目代码,用Xftp上传覆盖新的代码文件,一直报错,之前一直都是好好的,不知道怎么回事今天突然不行了,虽然进度显示100%,但一直报unknown error,文件传上去成0KB了,连之前的代码也给我搞没了,项目...
  • 文件夹变未知文件类型解决办法附工具
  • 在IIS6中新增可下载文件类型 IIS 6.0 不能处理未知的 MIME 类型 IIS6 只为对具有已知文件扩展名的文件的请求提供服务。如果请求内容的文件扩展名未映射到已知的扩展,则服务器拒绝请求。即IIS不支持未知文件扩展下载...
  • 这是个比较高级比较复杂的操作,请谨慎进行。 第一步,按Win+R打开运行,输入: regedit 回车,打开注册表编辑器。 第二步,在左侧依次找到并展开: ...比如你想重置所有.pptx文件的打开方式,就找到.......
  • 下载文件时,出现Http400错误,浏览器报错界面如下: 确定你的下载地址无特殊字符,且已经进行了UTF-8编码,那么可通过以下方式处理问题。 1.如果请求下载地址过长导致,可通过更改注册表里面的值,解决方式...
  • 作为一个普通用户,了解未知文件类型以及真实扩展名能间接的防止病毒的入侵和认识文件的用途。而且本软件绿色、无需安装,并支持关联/取消关联系统右键菜单,可以说是一个必装软件。 本软件基于TRID内核开发,...
  • 引 idea系列软件,创建文件的时候手误没有给文件设置文件类型,结果该文件一直是文本类型没有提示。这个时候就需要对文件进行指定文件类型了! 很多人遇到后是删除文件改名字。 操作
  • 记录一下自己在工作中用到XFTP上传文件到服务器(JAR包上传构建测试环境)时出现的问题: 起因:前两天构建环境上传文件还...排除软件问题,上传其他文件(excel小文档)上传出现0KB错误情况,同样无法上传,排除上...
  • 无法下载文件或程序时的解决方法 官网: https://support.microsoft.com/zh-cn/help/883260/information-about-the-attachment-manager-in-microsoft-windows 很多人在尝试从 Internet 下载文件或程序时都遇到了...
  • 问题:ie8下载文件的时候不显示文件名跟后缀只有action名 原因:ie8需要编码否则不识别文件名 解决:returnFile(bufferbyte,"application/octet-stream",HttpContext.Request.Browser.Browser=="IE"?Url.Encode...
  • Swagger3.0文件上传,接收file类型显示string解决办法 场景复现: 解决措施: > @RequestParam 注解更改为 @RequestPart("file")注解即可 原因目前未知,欢迎大家来探讨,最终解决是在spring-fox官网...
  • 总计有以下以下9种:文件的标题名、文件的属性(只读、存档,隐藏等)、文件的创建时间、文件的最后访问时间、文件的最后修改时间、文件大小的高位双字、文件大小的低位双字、保留、保留。在这里只有文件标题名和...
  • 个人博客原文:...我在分析整理代码的时候上传文件但是出现“抱歉,
  • java+大文件上传下载

    千次阅读 2019-08-26 11:26:20
    文件上传下载,与传统的方式不同,这里能够上传和下载10G以上的文件。而且支持断点续传。 通常情况下,我们在网站上面下载的时候都是单个文件下载,但是在实际的业务场景中,我们经常会遇到客户需要批量下载的场景...
  • java从linux服务器下载文件

    千次阅读 2020-09-05 21:43:35
    java从linux服务器下载文件到本地 最近做项目,使用的技术较老,前端用的架构是jsp,主要技术是jquery、js、css、html等,后端用到的主要是springmvc、存储过程等。 下面是一个文件下载的简单实现。主要是客户在...
  • 浏览器实现文件下载

    2021-04-23 16:25:19
    Content-Type主要标识文件类型,浏览器在默认情况下会展示返回的文件内容,但是有一个值比较特殊:application/octet-stream,这表示未知的二进制类型文件,为了安全起见,浏览器会将其存储到磁盘,从而实现下载的...
  • 预览窗格无法预览文件It’s easy to preview files without opening them in Windows 10 thanks to the Preview Pane feature in File Explorer. You can see thumbnails of most images, videos, audio files, and ...
  • 微信小程序下载文件ios无法预览问题–解决方案 想给单位做一个微信小程序,实现文件上传下载的功能,方便办事,也能提高办事效率。 wx.downloadFile()获取到的文件缓存在手机上,iOS无法在手机预览这个缓存文件,...
  • 本文介绍如何为IIS增加未知MIME类型文件下载支持。 Multipurpose Internet Mail Exchange(MIME)类型说明了Web浏览器或邮件应用程序如何处理从服务器接收的文件。例如,当Web浏览器请求服务器上的某一项目时,也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,965
精华内容 28,386
关键字:

下载的文件显示未知文件类型