2012-02-02 3 views
0

나는 초보자이며 Windows 응용 프로그램을 개발 중입니다. 내 사이트에서 비디오 파일을 다운로드해야하며 여기에 문제가 있습니다. 나는 내 사이트에서 이미지, 텍스트 파일을 다운로드 할 수있는 사용자 정의 다운 로더를 설계했습니다. 하지만 내 사이트에서 동영상을 다운로드 할 수 없었습니다. 아무도 나를 도울 수 없어 ..?WebClient 클래스를 사용하여 큰 비디오 파일을 다운로드하는 방법

WebClient client = new WebClient(); 
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged); 
client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted); 
client.DownloadFileAsync(new Uri("http://mysitename.com/Videos/vid.mp4"), "c:\\movie.mp4"); 
내 클라이언트 나 사용자 정의 브라우저를 통해 다운로드하고 싶어하기 때문에 나는 응답 콘텐츠 파견을 통해 다운로드하지 않으

는 ... 그래서 내가 당신 전문가의 솔루션을 알려 주시기 바랍니다 .. 당신에게

+2

작동하지 않는 경우 어떤 특정 동작을 나타냅니다? –

+0

안녕 Babcock, 그 어떤 오류를 보여주는 오히려 그것은 0 바이트 비디오 파일을 배치하여 다운로드를 완료합니다. –

+0

브라우저에서 URL에 액세스하려고 시도했을 때 404 오류가 발생했습니다. 그러나 파일 위치가 정확합니다. 그러나 이미지 또는 txt에 액세스하면 표시됩니다 .. 비디오 파일에 액세스하는 다른 방법은 .. 웹 클라이언트를 통해 내 파일을 다운로드하는 것입니다 .. –

답변

4

WebClient를 사용하여 비디오 파일을 다운로드하려고 시도했지만 작동합니다. 내 설정은 다음과 같습니다 :

이 비디오 파일이있는 defaultwebsite (IIS)에 가상 디렉터리 (비디오)가 있습니다. 전체 파일에 대한 작업이 완료 될에 대한 분을 기다리는, 당신은 비동기 방식으로 다운로드되기 때문에

var client = new WebClient(); 
Uri address = new Uri("http://localhost/Video/wildlife.wmv"); 
client.DownloadFileAsync(address, @"c:\video.wmv"); 

이 또한주의 :

난 그냥 C 드라이브에 비디오 파일을 다운로드하려면 아래의 코드를 사용 다운로드받을 수 있습니다. 처음에는 0 바이트를 표시하지만 크기에 따라 완료하는 데 약간의 시간이 걸립니다.

업데이트 : 서버에 파일 MIME 유형이 지정되어 있지 않으면 IIS가 제공 할 수있는 MIME 형식 모음에 추가하면 문제없이 파일을 다운로드 할 수 있습니다. 사용되는 다음 값이 MIME 유형 (시나리오에 대한)되어 추가 할 때

:

File Extension: .mp4 
MIME Type: video/mp4 

는 IIS에서 MIME 형식을 추가하려면이 링크를 따르

  1. For IIS 4,5
  2. For IIS 6
  3. For IIS 7
+0

안녕하세요 Rajesh .. 이제는 특정 형식을 다운로드하지 못했습니다 .. pls 당신은. 당신을 위해 그 다운로드 여부를 아십니까? –

+0

예 mp4를 시도하고 처음에는 404 오류가 발생했습니다. 그런 다음 IIS에서 내 가상 디렉터리를 탐색 한 다음 제공 할 새 MIME 형식을 추가했습니다. 이 작업이 완료되면 아무 문제없이 서버에서 파일을 다운로드 할 수 있습니다. – Rajesh

+0

예, Rajesh. 나 역시 내 서버 서포터에게 연락하여 MIME 유형을 추가했습니다. Rajesh에게 감사드립니다. 다운로드와 함께 progressbar 동기화에 몇 가지 의구심이 있습니다. –

0

이 감사합니다 서버 문제와 비슷하게 들릴지 모르지만 코드를 의심하는 경우 동기화를 다운로드하려고 할 수 있습니다 (이전에 비동기 다운로드에서 몇 가지 문제가있었습니다). 또 다른 방법은 WebRequest 클래스를 사용하는 것입니다. 이 서버가 매우 원격 인 경우 미리 ping을 시도하십시오. 나는 또한 파일이 서버에 있는지 확인해야하며, 파일이 너무 큰 경우 파일 업로드가 완료되었는지 확인해야한다고 생각한다.

+0

샘플 (1MB) 비디오 파일을 업로드했으며 그 서버가 확실합니다. 나는 또한 DownloadFile 메서드/DownloadFileAsync 메서드를 사용하여 시도했다. 그러나 그것은 작동하지 않습니다. webclient를 통해 비디오 파일을 다운로드 할 수 있습니까? –

+0

비디오 파일로 무엇을하려고합니까? 문제가있을 수도 있으므로 도움이 될 수도 있습니다. – seesharper

+0

예 Seesharper .. 해당 서버 문제 .. 방금 정렬되었습니다 .. 정말 고마워요 .. –

관련 문제