1

我们开发了一个 asp.net Web 应用程序,它使用 ashx 处理程序来执行部分文件上传。用户可以通过 silverlight 控件选择文件,该控件启动一个 Post HttpWebRequest 到 ashx 处理程序并以较小的块(通过 HttpWebRequest.BeginGetRequestStream)传输文件,以便 silverlight 控件可以显示进度条。

现在我们要扩展此解决方案以支持上传到 WebDAV 文件夹。所以主要的问题是:这种“分块”上传完全可以通过 WebDAV 完成吗?

4

2 回答 2

1

WebDAV 协议是 HTTP 协议的扩展,因此所有 HTTP 功能都可以使用它。最好的方法是在上传之前计算文件大小 - 这将允许轻松绘制进度条。

另一种选择是使用 Content-Range 标头,它允许以块的形式发送数据,但这将导致每个块有一个 HTTP GET 请求。

JFYI:我们的WebDAVBlackbox允许相对容易地使用 Silverlight 的所有 WebDAV 功能。

于 2012-11-27T14:13:10.680 回答
0

我想如果您保持执行 PUT 请求的连接打开,您可以继续向其发送数据..您必须确保您没有超时。可能有问题的一件事是,许多 DAV 服务器需要在 PUT 启动时知道完整的内容长度。

否则,没有标准可以继续附加到文件,拆分为多个 HTTP 请求;但也许你的服务器有一个非标准的扩展。SabreDAV有。

于 2012-11-27T13:54:07.753 回答