问题
I have trouble uploading files with SWFUpload when target servlet is listening on HTTPS. On HTTP it works fine.
The issue is only when using FireFox or Opera. On IE it works fine - not tried other browsers.
EDIT: Error message as provided from SWFUpload when in debug mode:
SWF DEBUG: Event: uploadProgress (OPEN): File ID: SWFUpload_0_0 SWF DEBUG: Event: uploadError : IO Error : File ID: SWFUpload_0_0. IO Error: Error #2038 SWF DEBUG: Event: uploadComplete : Upload cycle complete.
回答1:
Possibly a certificate related issue.
Check if there are any certificate related warnings when you open the target site in those browsers.
Open the certificate and check for warnings in there as well.
回答2:
It's for sure a certificate issue - it will work with HTTPS, Firefox and an official certificate.
I use SWFUpload in combination with HTTPS on the site invoiceplatform.com and it works with IE, Safari, Firefox and Chrome (did not test other browsers). On the test server Firefox doesn't work with HTTPS because there's no official certificate configured.
回答3:
2038 Is a Flash IO Error:
"Flash IO Errors are not very helpful. The same couple of error numbers are returned for just about everything.
Here are some common issues that cause these error codes:
- Invalid URL
- Server max post size or max upload size exceeded
- Server unexpectedly terminates the connection
- Zero byte file uploaded
- Basic Authentication failed
To debug these issues I first verify that my upload is working using a standard HTML upload form pointing at my upload.php"
If it were http I'd suggest using fiddler or wireshark but I don't think that will help for https.
回答4:
It appears to be a certificate authority issue: SWF discussion over HTTPS
回答5:
Last time I had some huge problem on site with ssl security and SWFUpload and other flash uploaders. There was always error #2038. Additionally there was a problem with sharing content from https site on Facebook. I have spent a lot of hours to find the solution and I found it! There was problem with ssl certificates.
First of all you will need original and not self generated certificates if you have same issue because Flash has problems with second ones. The site server is on Nginx so you will install certificates properly here is the instruction. And the main point is Concatenate the primary certificate and intermediate certificate. If you won’t do it yours page will be working properly but not the flash uploader and even when you try to
curl https://your-site.com
you might see error that explains that there is problem with certificate.
What is interesting that on Windows and Mac Os machines the flash works properly even without concatenating certificates and there is problem on Ubuntu. But on every system is problem with sharing on Facebook as it depends on FB servers configuration.
来源:https://stackoverflow.com/questions/1789863/swfupload-on-https-not-working