File 打开pdf时收到以下消息;Internet无法从abc.com下载……xyz文件无法写入缓存;在IE里?

File 打开pdf时收到以下消息;Internet无法从abc.com下载……xyz文件无法写入缓存;在IE里?,file,pdf,servlets,attachment,websphere-6.1,File,Pdf,Servlets,Attachment,Websphere 6.1,我们的应用程序是基于Spring框架构建的,它托管在WAS6.1上。它是为InternetExplorer6(作为使用IE6的用户)设计的。它通过控制器通过AJAX通信打开pdf文件。在后台,它调用mq来获取字节[]。它写入响应的BufferedOutput流中 它在开发和测试环境中运行良好,但在生产环境中它并不总是运行良好。它有时是开放的,有时不是。(为了实现负载平衡,我们有1台以上的服务器。) 有时,在文件名中设置了请求查询字符串,在尝试保存附件时,会在弹出窗口中显示以下错误消息: “Int

我们的应用程序是基于Spring框架构建的,它托管在WAS6.1上。它是为InternetExplorer6(作为使用IE6的用户)设计的。它通过控制器通过AJAX通信打开pdf文件。在后台,它调用mq来获取字节[]。它写入响应的BufferedOutput流中

它在开发和测试环境中运行良好,但在生产环境中它并不总是运行良好。它有时是开放的,有时不是。(为了实现负载平衡,我们有1台以上的服务器。)

有时,在文件名中设置了请求查询字符串,在尝试保存附件时,会在弹出窗口中显示以下错误消息:

“Internet无法从abc.com下载……url文件无法写入缓存”

PFB代码:

    byte[] letterByteArr = null;
    letterByteArr = fetchFromMQ();
    bufferedOutputStream = new BufferedOutputStream(response.getOutputStream());
                response.reset();
                response.setContentType(application/pdf);
                response.setHeader(Content-disposition, attachment; filename=LP.pdf);
                int length = letterByteArr.length;
                response.setContentLength(length);                  
                bufferedOutputStream.write(letterByteArr, 0, length);
                bufferedOutputStream.flush();   
类似的代码段在另一个运行在不同jvm中的应用程序中运行良好

如果有人在代码实现过程中遇到这个问题,他们能提出可能的解决方案吗?WAS、网络、IE或住所中可能出现的问题在哪里?

听起来很像。问题是,当通过HTTPS而不是HTTP提供PDF文件时,IE6不会下载该文件,而
缓存控制
和/或
Pragma
标题设置为
无缓存

添加以下响应标题:

response.setHeader("Cache-Control", "public");
response.setHeader("Pragma", "public");
这听起来很像。问题是,当通过HTTPS而不是HTTP提供PDF文件时,IE6不会下载该文件,而
缓存控制
和/或
Pragma
标题设置为
无缓存

添加以下响应标题:

response.setHeader("Cache-Control", "public");
response.setHeader("Pragma", "public");

我面临同样的问题,我添加了响应头来解决这个问题。 但是我必须删除
response.reset();只有在这之后,下载问题才不会发生

我不知道这背后的原因,但它的工作


唯一的问题是excel的数据与我的应用程序中pdf文件中的数据不同。

我面临同样的问题,我添加了响应标题来解决这个问题。 但是我必须删除
response.reset();只有在这之后,下载问题才不会发生

我不知道这背后的原因,但它的工作


唯一的问题是excel的数据与我的应用程序中pdf文件中的数据不同。

此应用程序在通过HTTPS的其他两个环境中运行良好。此外,在生产环境中,它是间歇性发生的。如果标题设置为
无缓存
不会影响所有环境?为什么其他环境仍在工作,而在prod中它有时会打开?是否可以针对WAS或网络相关问题?Plz建议。这是特定于浏览器的设置。只需设置这些标题。这一点也不害人。此外,你真的不需要抱怨“Plz建议”。只要把它放在一边,用聪明的方式问这个问题(在我读到“Plz建议”之前,你做得很好)。这个应用程序在另外两个通过HTTPS的环境中运行良好。此外,在生产环境中,它是间歇性发生的。如果标题设置为
无缓存
不会影响所有环境?为什么其他环境仍在工作,而在prod中它有时会打开?是否可以针对WAS或网络相关问题?Plz建议。这是特定于浏览器的设置。只需设置这些标题。这一点也不害人。此外,你真的不需要抱怨“Plz建议”。别管它,用聪明的方式问这个问题(在我读到“Plz建议”之前,你做得很完美)。