1

ashxハンドラーを使用して部分的なファイルのアップロードを行うasp.netWebアプリケーションを開発しました。ユーザーはSilverlightコントロールを介してファイルを選択でき、コントロールはPost HttpWebRequestをashxハンドラーに開始し、ファイルを小さなチャンクで(HttpWebRequest.BeginGetRequestStreamを介して)送信して、Silverlightコントロールがプログレスバーを表示できるようにします。

次に、このソリューションを拡張して、WebDAVフォルダーへのアップロードをサポートします。したがって、主な質問は次のとおりです。この「チャンクワイズ」アップロードは、WebDAVを介して実行できますか?

4

2 に答える 2

1

WebDAVプロトコルはHTTPプロトコルの拡張であるため、すべてのHTTP機能がそれで機能します。アップロードする前にファイルサイズを計算するのが最善の方法です。これにより、プログレスバーを簡単に描画できます。

もう1つのオプションは、データをチャンクで送信できるContent-Rangeヘッダーを使用することですが、これにより、チャンクごとに1つのHTTPGETリクエストが発生します。

JFYI:WebDAVBlackboxを使用すると、SilverlightのすべてのWebDAV機能を比較的簡単に使用できます。

于 2012-11-27T14:13:10.680 に答える
0

PUT要求を行う接続を開いたままにしておくと、データを送信し続けることができると思います。ただし、タイムアウトにならないようにする必要があります。問題になる可能性があることの1つは、多くのDAVサーバーがPUTの開始時に完全なコンテンツ長を知る必要があることです。

それ以外の場合、ファイルに追加し続ける標準はなく、複数のHTTPリクエストに分割されます。しかし、おそらくあなたのサーバーには非標準の拡張機能があります。SabreDAVにはあります。

于 2012-11-27T13:54:07.753 に答える