2012-02-02 107 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

如果它不起作用,那么它展示的具体行为是什么? – 2012-02-02 14:59:00

+0

嗨巴比克,它没有任何显示错误,而是它通过放置一个0字节的视频文件来完成下载。 – 2012-02-02 15:36:03

+0

当我试图访问浏览器中的URL ..其抛出404错误。但是文件位置是正确的。但如果我访问的图像或TXT它得到显示..所以是任何其他方式来访问视频文件..使我的文件通过webclient下载.. – 2012-02-02 15:38:21

回答

4

我试图用WebClient下载视频文件,它的工作原理。我的设置如下:

我有一个虚拟目录(视频)defaultwebsite(IIS)有这个视频文件。

我只是用下面的代码来下载视频文件到C盘:

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

还要注意,因为你是在异步的方式下载,等待大约一分钟的操作完成完整的文件被下载。最初它显示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 ..现在我才知道,具体格式不下载..你可以请试试.mp4文件..请让我知道它是否为你下载? – 2012-02-02 16:57:53

+0

是的,我尝试了mp4,最初得到了错误404。然后,我浏览到IIS上的虚拟目录,然后添加一个新的MIME类型以供其使用。一旦完成,我可以从服务器上下载文件没有任何问题 – Rajesh 2012-02-02 17:18:35

+0

是的,Rajesh。我也只是联系了我的服务器支持者并添加了MIME类型..非常感谢Rajesh。我在进度条同步下载时也有一些疑虑.. – 2012-02-02 17:34:36

0

这听起来更像是一个服务器问题,但如果你怀疑你的代码,你可能想尝试下载同步(过去我有一些问题下载异步)。另一种方法是使用WebRequest类。如果此服务器非常远,请尝试预先ping。我认为你还应该检查以确保文件在服务器上,如果文件很大,你应该检查文件是否完成上传。

+0

我上传了一个样本(1mb)的视频文件,我确定它在服务器上。我也尝试使用DownloadFile方法/ DownloadFileAsync方法。但它不工作。是否真的可以通过webclient下载视频文件? – 2012-02-02 16:00:53

+0

你想用视频文件做什么?这可能有助于了解,因为你的问题可能在那里。 – seesharper 2012-02-02 16:10:26

+0

是Seesharper ..它的服务器问题..只是整理出来..非常感谢你.. – 2012-02-02 17:35:09