大きなファイルをサーバーにアップロードする必要のあるSilverlightアプリケーションがあります。私はWebClientとHttpWebRequestの両方を使ってアップロードを見てきましたが、どちらのオプションでもストリームをアップロードする方法は分かりません。 uplaodingが合理的でないうちに、内容全体をメモリにロードしてファイルのサイズにしてください。これはSilverlightでも可能ですか?Silverlightストリーミングアップロード
答えて
あなたは「チャンク」の方法で行くことができます。 CodePlexに上のSilverlightのファイルアップローダは、この技術を使用しています:チャンクサイズを考えると
http://www.codeplex.com/SilverlightFileUpld
(例えば、10K、20K、100K、など)は、ファイルを分割し、HTTPを使用してサーバーに各チャンクを送信することができます要求。サーバーは各チャンクを処理し、各チャンクが到着するとファイルを再アセンブルする必要があります。複数のWebサーバーがあるWebファームのシナリオでは、Webサーバー上のローカルファイルシステムをこの方法に使用しないように注意してください。
「チャンク'(WCFのように)サーバー側で再アセンブルしますか? – atconway
私は2つのテクニックを使いました:1)各チャンクをファイルシステム上のファイルとして保存し、すべてのチャンクが書き込まれた後に適切な順序でファイルを再アセンブルし、2)各チャンクをバイナリデータとして保存するデータベースを作成して再アセンブルします。あなたのサイトが複数のWebサーバー間で負荷分散されている場合は、テクニック#2またはある種の分散ファイルシステムを使用する必要があります。 – kindohm
私のファイルシステムの場所は、WCFサーバーが存在するサーバーと同じサーバー上にあり、負荷分散サーバーではないため、#1は本当にうまくいくと思います。チャンクを書き、再組み立てする例はありますか?どのような種類のリーダー/ライターを使用しますか?助けてくれてありがとう。 – atconway
SilverlightのWebClientが、進行状況イベントでサーバーにStreamをポンピングする手段を提供できないことは、特別なことです。これは文字列のアップロードのために提供されて以来、特に驚くべきことです!
HttpWebRequestを使用して何をしているように見えるのかを記述することは可能です。
BeginGetRequestStream
のコールバックでは、発信要求のストリームを取得し、ファイルのストリームからチャンクを読み込んで出力ストリームに書き込むことができます。残念ながら、Silverlightは、出力ストリームが閉じられるまで、出力をサーバーに送信しません。このデータがすべて保存されている間は、私は分かりません。十分に大きくなると、一時的なファイルを使用してマシンのメモリに負荷をかけないようにすることができますが、とにかく
可能な可能性がある唯一の解決策は、ソケット経由でHTTPプロトコルを書き込むことです。
ソケットについては少ししか問題がありません。Silverlightソケットはポート80(4502〜4534のみ)に接続できません。 – herbrandson
- 1. Actionscript(Flex)Djangoにストリーミングアップロード
- 2. OneDriveの巨大なストリーミングアップロード
- 3. retrofitを使用したBase64イメージのストリーミングアップロード
- 4. Boto3:S3ストリーミングアップロードが完了するのを待ちます
- 5. Silverlight 2.0とSilverlight 3.0のバインディング
- 6. SilverlightアプリケーションのWeb.Config vs SilverlightホスティングアプリケーションのWeb.Config
- 7. 私のSilverlight 4アプリケーションでSilverlightデータバインドリスト
- 8. は私のSilverlightコントロールでSilverlightの
- 9. Silverlightカスタムボタンコンテンツ
- 10. Silverlightギャラリー
- 11. Silverlightファイルアップロードチュートリアル?
- 12. Silverlightサンプルアプリケーション
- 13. Silverlightスケジューリングコントロール
- 14. Silverlightグラフコントロール
- 15. Silverlight IninParams
- 16. Silverlight InitializeComponent
- 17. Silverlightの
- 18. Silverlightライブオーディオストリーミング
- 19. Silverlightカラーピッカー
- 20. Silverlightデータバインド
- 21. Silverlightダイナミックバルクファイルダウンロードアプリケーション
- 22. Silverlightグローバルマウスダウンイベントハンドラー
- 23. silverlight app
- 24. Silverlight CheckBox
- 25. Silverlightアプリ。
- 26. ユニットテストSilverlight
- 27. Silverlightボタンスタイル
- 28. Silverlightデプロイメント
- 29. Silverlightページナビゲーション
- 30. Silverlight SaveFileDialog.SelectedFile?
+1本当に良い質問ですが、私は良い答えがあったと思います。ファイルの大きさはどのくらいですか? – AnthonyWJones
最大150メガ程度のwavファイルがあります – herbrandson