2012-11-27 4 views
1

ashx 처리기를 사용하여 부분 파일 업로드를 수행하는 asp.net 웹 응용 프로그램을 개발했습니다. 사용자는 Silverlight 컨트롤을 통해 파일을 선택할 수 있으며 컨트롤은 ashx 핸들러에 대한 HttpWebRequest 게시를 시작하고 Silverlight 컨트롤이 진행률 막대를 표시 할 수 있도록 HttpWebRequest.BeginGetRequestStream을 통해 작은 청크로 파일을 전송합니다.WebDav를 통해 청크 파일 업로드

이제 우리는 WebDAV 폴더로 업로드를 지원하기 위해이 솔루션을 확장하려고합니다. 주요 질문은 다음과 같습니다. WebDAV를 통해 "청크 방식으로"업로드 할 수 있습니까?

답변

1

WebDAV 프로토콜은 HTTP 프로토콜의 확장이므로 모든 HTTP 기능이이 프로토콜과 함께 작동합니다. 가장 좋은 방법은 업로드하기 전에 파일 크기를 계산하는 것입니다. 그러면 의 진행 표시 줄을 쉽게 그릴 수 있습니다.

또 다른 옵션은 데이터를 청크로 보낼 수있는 Content-Range 헤더를 사용하는 것이지만 청크 당 하나의 HTTP GET 요청이 발생합니다.

JFYI : 우리의 WebDAVBlackbox은 Silverlight의 모든 WebDAV 기능을 비교적 쉽게 사용할 수 있습니다.

0

PUT 요청을하는 연결을 계속 열어두면 데이터 전송을 계속할 수 있다고 상상해보십시오. 시간 초과가 아닌지 확인해야합니다. 문제가되는 한 가지는 많은 DAV 서버가 PUT이 시작될 때 전체 내용 길이를 알아야한다는 것입니다.

그렇지 않으면 여러 HTTP 요청으로 분할하여 파일에 계속 추가 할 표준이 없습니다. 하지만 아마도 서버에 비표준 확장이 있습니다. SabreDAV 않습니다.

+0

IIS 7을 webdav 폴더 호스트로 사용하고 있습니다. – hoetz

관련 문제