Flash 为什么我上传的文件是空的?

Flash 为什么我上传的文件是空的?,flash,internet-explorer,tomcat,ssl,windows-7,Flash,Internet Explorer,Tomcat,Ssl,Windows 7,我正在使用将文件上载到运行Tomcat的web服务器。用户在上传完成后开始接收来自服务器的错误。日志表明这些文件在服务器上没有内容,并且在调试模式下运行的SWFUpload似乎认为发送文件没有问题 仅当以下所有条件均为真时,问题才会出现: 客户端使用SSL 客户端在Windows7上 客户端使用Flash上传程序。HTML上传工作正常 客户端使用IE 起初,我怀疑这与IE的问题有关,并设置Pragma和缓存控制头以防止客户端缓存我的SWF文件,这是一个错误。我很困惑,因为我只是在上传的时候才注

我正在使用将文件上载到运行Tomcat的web服务器。用户在上传完成后开始接收来自服务器的错误。日志表明这些文件在服务器上没有内容,并且在调试模式下运行的SWFUpload似乎认为发送文件没有问题

仅当以下所有条件均为真时,问题才会出现:

  • 客户端使用SSL
  • 客户端在Windows7上
  • 客户端使用Flash上传程序。HTML上传工作正常
  • 客户端使用IE

起初,我怀疑这与IE的问题有关,并设置
Pragma
缓存控制
头以防止客户端缓存我的SWF文件,这是一个错误。我很困惑,因为我只是在上传的时候才注意到这个问题。下载未受影响

最后,这个问题似乎起源于2012年1月发布的一个版本,该版本旨在解决一个允许某人解密SSL 3.0/TLS 1.0加密流量的漏洞

Microsoft的解决方案是确保服务器支持TLS 1.1。禁用TLS1.0会导致IE退回到SSL 3.0,似乎也能解决问题,但并不理想

从JRE 1.7开始,Java仅支持TLS 1.1。Tomcat将JSSE库用于SSL。除非您使用的是本机Tomcat库(可能已经支持TLS1.1),否则请确保升级到JRE 1.7和Tomcat 7以获得TLS1.1

对于那些使用Apache和OpenSSL的人,最后一点要注意的是:OpenSSL 0.9.x似乎只支持TLS1.0。我听说您可以构建Apache,它应该为您提供TLS1.1+

附加参考: