There are however some issues that sometimes make the experience of using the library a painful one. The problem come not from the SwfUpload itself, but rather from flash plugins installed on the browsers. Especially older versions.
One of the problem is that some of the plugins (Adobe’s Flash < 9.0 if I remember correctly) doesn’t pass cookies during the upload, which results in lost session. Detailed description and possible solutions can be found around the web, for example here.
The other problem I came accross was that an user got logged out every time he uploaded a file with IE6. It was caused by User Agent mismatch when restoring session, so User Agent check had to be disabled for upload requests.
When it comes to using SwfUpload on Mac some new issues appear. One is a subdomain problem that causes a 404 error.
Couple of days ago I was hit by an error that took me all day to cope with. It was none of the above, the request seemed to be all correct, input data passed to an action (CakePHP application) was complete. The action itself didn’t work though. After quite painful debugging I found out that there was a port number appended to host name in $_SERVER[‘HTTP_HOST’]. For an usual configuration it should not make any difference, however here it did and an absence of database connection was that difference.
The application gets deployed to more than one server and database it connects to depends on the server. The code that determines database hostname relied on the $_SERVER[‘HTTP_HOST’] variable and didn’t care about port numbers. As it appeared it should have!
I didn’t see such a problem described anywhere else, so I decided to share. Hopefully this can help someone few hours of work.