HTTPS下载出现“Internet Explorer Cannot Download”的问题

本文解决了一个在IE6及特定操作系统环境下使用PHP进行文件下载时出现的问题。通过调整服务器端Header设置并修改客户端IE浏览器配置,成功规避了Internet Explorer Cannot Download错误。

记一下,怕忘了。

 

【问题描述】

本来就是一段PHP控制下载文件的问题。但是在某些操作系统和ie6下面,总是出弹出

 

“internet explorer cannot download”

 

【分析与解决】

之前改header改好过一次,但是这次怎么折腾这些报头,ie都不弹出那个[open/save]的对话框了。最后终于找到了问题的根源:

http://support.microsoft.com/kb/812935

"Internet Explorer Cannot Download" Error Message When You Use an HTTPS URL to Open an Office Document or PDF File

在微软的kb文档里面,描述了导致这个问题的原因和解决方法:

To work around this problem, make sure that Do Not Save Encrypted Files check box is not checked and that the server does not send the "Cache-Control: No Store" or the "Cache-Control: No Cache" header.

You may also be able to work around this problem by using an HREF to load the document.

Note This method does not work if the server uses the "Cache-Control: No Cache" header.

对于用户来说:

需要在ie选项->高级中去掉“Do not save encrypted pages to disk”前面的勾。如下图

 

ie高级选项

 

对于服务器端:

1、不要发送Cache-Control: No Store 或者 Cache-Control: No Cache的header头

2、换用<a href="..."></a>这种标签来下载office或者pdf文档。(我之前是控制某个frame.src来下载文档的。)

 

【附件】

附上php的下载文件时的header部分代码。

Cannot open 本地 Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, D:\pycharm\PyCharm 2025.1.2\plugins\terminal\shell-integrations\powershell\powershell-integration.ps1] in C:\Users\EDY\PycharmProjects\PythonProject1, [columns=158, rows=10], envs={PROCESSOR_IDENTIFIER=>Intel64 Family 6 Model 142 Stepping 9, GenuineIntel, CommonProgramFiles=>C:\Program Files\Common Files, APPDATA=>C:\Users\EDY\AppData\Roaming, =::=>::\, FPS_BROWSER_USER_PROFILE_STRING=>Default, LOCALAPPDATA=>C:\Users\EDY\AppData\Local, ProgramData=>C:\ProgramData, COMPUTERNAME=>DESKTOP-5C3LPIO, JEDITERM_SOURCE=>C:/Users/EDY/PycharmProjects/PythonProject1/.venv/Scripts/activate.ps1, SystemDrive=>C:, USERDOMAIN=>DESKTOP-5C3LPIO, TMP=>C:\Users\EDY\AppData\Local\Temp, OneDrive=>C:\Users\EDY\OneDrive, CommonProgramFiles(x86)=>C:\Program Files (x86)\Common Files, SystemRoot=>C:\Windows, HOMEPATH=>\Users\EDY, TEMP=>C:\Users\EDY\AppData\Local\Temp, ComSpec=>C:\Windows\system32\cmd.exe, PUBLIC=>C:\Users\Public, TERMINAL_EMULATOR=>JetBrains-JediTerm, LOGONSERVER=>\\DESKTOP-5C3LPIO, SESSIONNAME=>Console, ProgramFiles=>C:\Program Files, HOMEDRIVE=>C:, DriverData=>C:\Windows\System32\Drivers\DriverData, CLASSPATH=>C:\Program Files\Java\jdk1.8.0_161\lib\dt.jar;C:\Program Files\Java\jdk1.8.0_161\lib\tools.jar, USERDOMAIN_ROAMINGPROFILE=>DESKTOP-5C3LPIO, windir=>C:\Windows, Path=>C:\app\EDY\product\11.2.0\dbhome_2\bin;D:\mysql-5.7.17-winx64\bin;C:\Users\EDY\AppData\Local\Microsoft\WindowsApps;, PROCESSOR_LEVEL=>6, FPS_BROWSER_APP_PROFILE_STRING=>Internet Explorer, JAVA_HOME=>C:\Program Files\Java\jdk1.8.0_161, NUMBER_OF_PROCESSORS=>4, PROCESSOR_ARCHITECTURE=>AMD64, PROCESSOR_REVISION=>8e09, OS=>Windows_NT, NLS_LANG=>SIMPLIFIED CHINESE_CHINA.ZHS16GBK, JETBRAINS_INTELLIJ_COMMAND_END_MARKER=>cEltIzqoKWwnYyj6mauwn08qZl4sulTOz9rQiO8cg7p2f694AdulhWn5TIW0SQZR, USERPROFILE=>C:\Users\EDY, ALLUSERSPROFILE=>C:\ProgramData, USERNAME=>EDY, ZES_ENABLE_SYSMAN=>1, ProgramW6432=>C:\Program Files, CommonProgramW6432=>C:\Program Files\Common Files, TERM_SESSION_ID=>03d5ecfe-420b-40cf-ad69-a061e90f43a4, ProgramFiles(x86)=>C:\Program Files (x86), PSModulePath=>C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules, PATHEXT=>.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW} 有关详细信息,请查看 IDE 日志(帮助 | 在资源管理器中显示日志)。
最新发布
09-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值