Case Study: Silverlight Large File Upload
Abstract
As very large sized video files will be upload to the client's website, we adopted Silverlight rather than pure HTML controls to
implement this feature, due to the powerful presentation capability and HTTP Networking capability of
Silverlight.
Situation
The users of the website are allowed to upload video files to the website, and the size of the files can be up to MBs.
If we use the traditional HTTP File Upload control, the large files can still be uploaded with complex settings; however,
the uploading has to be started over again if it is interrupted in the middle of the course. Plus, the users will have no idea
of the progress. Thus our developers developed a Large File Upload control based on Silverlight. With this Upload control,
the user can choose resuming uploading rather than start from scratch. Besides, the control provides the user with a more
friendly and attractive UI. Below are the specific requirements:
- Large-sized files uploading
- Continue uploading at interrupt point
- Multiple files uploading
- Progress indication
Solutions
- At the client side, the Silverlight control uses asynchronous HttpRequest & HttpResponse. At the server side, the system uses HttpHandler as web service.
- The whole file will be divided into several blocks. Client will send the block one by one, while server side will record the current
block's index. If the progress is interrupted the client side will firstly require the server side to provide the information
of breaking point and then resume uploading from the breaking point.
- The client will build a queue. All the files which are waiting to upload will be pushed into the queue. The uploading engine will pick a file out of the queue, and upload the files one by one.
Screen shot
Contact us
To find more details of our technical expertise and previous experience, please
fill in the form below and our sales will contact you as soon as possible. Any
enquiries from you are welcome, we will respond to you as soon as possible.