What we’ve got here is a FileUpload component for Flex which utilizes the new
FileReference.load method available since Flash Player 10 to support uploading of large files.
As a lot of providers choose a very small size for their PHP ini settings of
post_max_size, uploading files bigger than 2mb is often not supported. This can be very annoying if you like to upload mp3 or video files, which easily can exceed the maximum accepted file size. In this case you normally have to go with an FTP client.
Uploading large files
If supported by the client’s Flash Player this upload component utilizes the new
FileReference.load method to load the file into the ram of the client computer at first. Once loaded the file data can be read via the
data property of the
FileReference object. It is now possible to extract chunks of the loaded file data and upload those chunks to the server separately. This way the upload-data won’t exceed the maximum accepted post data of the server as the chunks used are a lot smaller. On the server side, a php script is joining the chunks together to the original file.
Prior to uploading the uploader also calculates an adler32 checksum of the file data. This checksum is used to check if a partially uploaded file already exists on the server and an upload operation can be resumed.
Since i don’t want unkown people to upload random files to my server, i can only offer some screenshots of the application here. The best thing would be, if you grab the source code which is available at the bottom of this page and test it out yourself.
selected files for upload
file already exists dialog
loading file into ram to for chunkwise upload
calculating an adler32 checksum of the file data to support the resume of uploads
uploading the file in chunks