Büyük dosyaları sunucuya yüklemesi gereken bir Silverlight uygulamasına sahibim. Hem WebClient hem de bir HttpWebRequest kullanarak yükleme baktım, ancak her iki seçenek ile karşıya yükleme akışı açık bir şekilde görmüyorum. Dosyaların büyüklüğüne geçin, uplaoding işleminden önce tüm içeriği belleğe yüklemek mantıklı değildir. Silverlight'ta bu mümkün mü?Silverlight streaming upload
cevap
"Bölme" yaklaşımıyla devam edebilirsiniz. Codeplex üzerinde Silverlight File Uploader bu tekniği kullanır: Bir yığın boyutu göz önüne alındığında
http://www.codeplex.com/SilverlightFileUpld
(örn 10k, 20k, 100k, vs), dosyayı bölmek ve bir HTTP kullanarak sunucuya her öbek gönderebilir istek. Sunucunun her bir parçayı ele alması ve her bir parça geldiğinde dosyayı yeniden kurması gerekir. Birden çok web sunucusu olduğunda bir web grubu senaryosunda - bu yaklaşım için web sunucusundaki yerel dosya sistemini kullanmamaya dikkat edin.
'Chunks' in nasıl devam edeceğine dair herhangi bir fikir 'sunucu tarafında (WCF'de) ve yeniden monte edin? – atconway
İki teknik kullandım: 1) her bir dosyayı dosya sistemine geldiğinde dosya olarak kaydedin, sonra tüm parçaları yazdıktan sonra dosyaları uygun sırayla yeniden birleştirin ve 2) her bir parçayı ikili veri olarak kaydedin bir veritabanı ve daha sonra yeniden bir araya getirin. Siteniz birden fazla web sunucusunda yük dengeleniyorsa teknik # 2 veya dağıtılmış dosya sistemini kullanmanız gerekecektir. – kindohm
Dosya sistemimin konumu, WCF sunucusunun bulunduğu sunucuda bulunduğundan ve yük dengeli bir sunucu olmadığından, # 1'in gerçekten iyi çalışacağını düşünüyorum. Parçaların yazılması ve yeniden takılmasıyla ilgili örneklerin var mı? Ne tür bir okuyucu/yazar kullanırdınız? Yardım için teşekkürler. – atconway
Silverlight'taki WebClient'in, ilerleme olaylarıyla birlikte sunucuya bir Akışı pompalamak için bir araç sağlamadığı olağanüstü görünüyor. Bu özellikle bir dize yükleme için sunulan şaşırtıcı!
HttpWebRequest ile ne yapmak istediğinizi görünecek şekilde kodlamak mümkündür.
BeginGetRequestStream
için geri aramada, giden istek için Akışı alabilirsiniz ve daha sonra dosya akışınızdan gelen parçaları okuyabilir ve çıktı akışına yazabilirsiniz. Ne yazık ki, Silverlight, çıktı akışı kapatılana kadar çıkışı sunucuya göndermeye başlamıyor. Tüm bu verilerin bittiği yerde bittiği zaman, bilmiyorum, eğer yeterince büyük SL alırsa, makinenin belleğini germemek için geçici bir dosya kullanabilir, ancak tekrar bellekte saklayabilir. neyse.
Bunun için mümkün olan tek çözüm, HTTP protokolünü soketler üzerinden yazmaktır.
Soketler hakkında biraz konuştum ve sorun, Silverlight soketlerinin bağlantı noktası 80'e bağlanamaması (sadece 4502'den 4534'e) – herbrandson
- 1. silverlight streaming hosting
- 2. Kendo UI Async Upload Internet Explorer'da çalışmıyor Upload
- 3. Jersey Resim Upload İstemcisi
- 4. Moodle Block Upload
- 5. FTP Upload ve Android'de
- 6. Çoklu dosya php upload
- 7. streaming .m3u ses
- 8. Video Streaming Website Geliştirme
- 9. OpenCV MPEG Video Streaming
- 10. Streaming okhttp yanıt kütlesi
- 11. Appengine Blobstore - Video Streaming
- 12. Streaming Real time Audio
- 13. EWS Streaming Notification
- 14. Silverlight
- 15. Silverlight
- 16. Upload Büyük dosyalar (1GB) -ASP.net
- 17. Facebook Batch Photo Upload iOS
- 18. Flash HTTP Streaming - Çoklu Dosyalar
- 19. Spark Streaming uygulamasını nasıl çalıştıracaksınız?
- 20. Twitter Tweepy ile API Streaming,
- 21. Android - Çoklu, eşzamanlı Streaming Audio
- 22. Spark Streaming - Dinamik olarak süz
- 23. jwplayer streaming video indirmek için?
- 24. Streaming-s3, düzgün bir şekilde aws dosyasına dosyalamıyor
- 25. Silverlight SecurityException
- 26. Silverlight Dağıtımı
- 27. Silverlight, HyperlinkButton
- 28. UI'mı Silverlight
- 29. Silverlight Uygulaması?
- 30. Cross Domain Görüntüsü upload Angular + laravel
+1 Gerçekten güzel bir soru, iyi bir cevabım olsaydı. Ne kadar büyük bir dosyadan bahsediyoruz? – AnthonyWJones
Yaklaşık 150+ mega kadar olabilecek bir wav dosyası var. – herbrandson