Php ile nasıl yapılır yada yapılabilinirmi pek bilgim yok ama , upload sitelerinin çoğu , asenkron şekilde istenilen dosyayı belli paketlere ayırıp parça parça gönderiyor.
Yani talep edilen dosyayı kendi içinde minik paketlere bölüyor ve paket paket gönderiyor. Eğer herhangi bir paket gönderiminde problem oluşur ise sadece o paketi geri gönderiyor ve hem bandwich'ten zararı düşürüyor hemde zamanı baştan başlatmak zorunda kalmıyor.tüm son paket gönderildiğindede tüm paketleri birleştiriyor.
Bunu nasıl yapıyor derseniz işte orda tam detaylı bilgi sahibi olmamakla birlikte client taraftada işlemler yapmanız gerektiği konusunda bir fikir verebilirim. Dolayısıyla php tek başına yetmiyebilir ki yetmez.

Sadece sunucu tarafında bu işi halletmek zor. client tarafta dosyayı alan kullanıcının dosya alım saatini bağlantı hızını dosyanın hangi paketlerinin gönderildiğini, eğer giden paketlerden biri problemli ulaşmış ise yada ulaşamamış ise restore edilebilirliğini yada yeniden gönderilmesini ... gibi durumları kontrol etmek gerekiyor. Buda client tarafta da bilgileri tutmamız gerektiğini gösteriyor.

Session başlat - Dosyayı parçala - Paketleri gönder - Paketleri birleştir - Sessionu kapat.
Eğer başlangıç süresini ve bitiş süresini de, ip adresi ile birlikte veritabanında tutarsan clientın yeni talebinde , önceden dosya talep edip etmediğini bilir , ona göre işlem yaptırırsın.

Aklıma şuan bunlar geliyor. Birde silverlight ile bu paketlemeyi anlatan bir örnek eğitim videosunu veriyim faydası dokunur. Hiç değilse biraz fikir verir.

Sitede aşağı kısımlarda Görsel Dersler kısımında ilk sırada Silverlight Upload videosu fikir verebilir.
http://daron.yondem.com/tr/formatpag...tv.format.html