当前位置: 首页 > 知识库问答 >
问题:

Java 发送 xls 文件,但浏览器将其识别为 xlsx

山翼
2023-03-14

我正在从Java后端导出一个xls文件,但是当客户端收到它时,它被识别为xlsx文件,尽管它的名称中有. xls扩展名。我正在使用JasperXlsExporterBuilder构建xls文件。

发送文件时,我设置了响应类型:response.type(“application/vnd.ms-excel”)

和响应标头:response.header(“Content-Disposition”, “attachment;filename=” file.getName()); 其中文件名是文件名.xls

但当客户端接收到该文件时,该文件仍被称为filename。xls,但上面写着<code>您已选择打开:filename。xls是Excel 2007电子表格(5kB),来自:blob:这会导致问题,因为某些Excel版本无法处理识别的类型和文件扩展名之间的不匹配。

共有1个答案

柯立果
2023-03-14

你所做的一切都不是造成这种情况的原因;正在下载文件的计算机的安装已损坏。例如,如果注册表“链接”.xls扩展名,您会得到它。你无法检测到这一点,也无法修复它(因为你是一个web服务器;如果你能检测到或修复这些事情,你也可能会做恶意的事情,因此,你不能,也永远无法从web服务器上做这些事情)。

最后一个可能行不通的办法是确保URL以.xls结尾。确保用户正在关注一个链接,如<code>https://www.user3274server.com/foo/bar/filename.xls。

 类似资料:
  • 我正在尝试制作一个程序: 从文件中读取汉字列表,然后根据这些汉字制作字典(将符号与其含义关联起来) 一旦我能够正确地阅读和存储这些标志(我试着将它们写入另一个文件,以检查它们是否正确,并且是否有效),我就不知道如何将它们发送到我的浏览器。 我连接到127.0.0.1:4321,我所能做到的最好的是得到一个(据说)网址编码的汉字及其翻译。 代码: 如果我不urlencode的汉字,我得到一个错误从p

  • 在处理 ASP 脚本时,任何没有包含在 ASP 定界符或 <SCRIPT> 标记中的文本或图形都将被简单地返回给浏览器。可以通过使用 Response 对象显示地把内容发送给浏览器。 发送内容 要将内容从 ASP 定界符内部或过程发送给浏览器,可以使用 Response 对象的 Write 方法。例如,下面的语句可以根据用户是否访问过此页而发送不同的问候语: <% If FirstTime =

  • 现在如何将此保存到浏览器。

  • 求解答,小文件能正发送至浏览器,大一点的发送失败,浏览器显示未收到服务器发送过来的数据 我在实现基于Libevent库的b/s模型时,使用bufferevent_write向浏览器发送10M的mp3文件失败,打印错误码errno的值一直等于11 resource temporarily unavailable, 并在回调函数调用完之后异常终止,无错误信息。并非跳出event_base_dispat

  • 我正在构建一个简单的PHP代理,缓存响应头和对象。 我的问题是,如果我登录到youtube.com,我就看不到自己的签名,youtube一直说登录(未签名),但是如果我停止我的脚本,打开youtube.com网站,我就会看到我自己签名了。我认为这是饼干的问题。是吗? 我的脚本只是抓取响应头并将其发送回浏览器。当我使用fopen()下载对象时,一些网站,如Google“Play STore” 我在响

  • 从这个Bugzilla线程(还有)可以看出,Firefox并不总是在POST请求中发送Origin头。RFC声明不应在某些未定义的“隐私敏感”上下文中发送。Mozilla在这里定义了这些上下文。 我很想知道,这些是不是Firefox不会发送Origin头的唯一情况。据我所知,它也不会在跨源POST请求中发送它(尽管Chrome和Internet ;Explorer会),但我不能在文档中确认这一点。