C# 如何使用WebClient类下载大型视频文件

C# 如何使用WebClient类下载大型视频文件,c#,winforms,webclient,webclient-download,C#,Winforms,Webclient,Webclient Download,我是个新手,正在开发一个windows应用程序。我需要从我的网站下载一个视频文件,这是我的问题。我设计了一个定制的下载器,通过它我可以从我的网站下载图片和文本文件。但我无法从我的网站下载视频。谁能帮我一下吗 WebClient client = new WebClient(); client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged); cli

我是个新手,正在开发一个windows应用程序。我需要从我的网站下载一个视频文件,这是我的问题。我设计了一个定制的下载器,通过它我可以从我的网站下载图片和文本文件。但我无法从我的网站下载视频。谁能帮我一下吗

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");

我不想通过响应内容发送的方式下载,因为我的客户希望我通过自定义浏览器下载。。所以请让我知道你们专家的解决方案。。谢谢

这听起来更像是服务器问题,但是如果您怀疑自己的代码,您可能想尝试下载sync(我在过去下载async时遇到过一些问题)。另一种方法是使用WebRequest类。如果此服务器非常远程,请事先尝试ping。我认为您还应该检查文件是否在服务器上,如果文件很大,您应该检查文件是否已完成上载。

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

我已尝试使用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类型时,将使用以下值(适用于您的场景):

要在IIS中添加mime类型,请遵循以下链接:


  • 我试着用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类型时,将使用以下值(适用于您的场景):

    要在IIS中添加mime类型,请遵循以下链接:



  • 如果它不工作,那么它会显示什么具体行为?嗨,Babcock,它没有任何显示错误,而是通过放置一个0字节的视频文件来完成下载。当我试图在浏览器中访问url时。。这是404错误。但是文件位置是正确的。但是如果我访问图像或txt,它就会显示出来。。还有其他方法可以访问视频文件吗。。要通过webclient下载我的文件..如果在浏览器中访问URL导致404,那么该文件将无法使用
    webclient
    下载。那么我如何通过webclient下载视频文件?如果它不工作,那么它会显示什么具体行为?嗨,巴布科克,它没有显示任何错误,而是通过放置一个0字节的视频文件完成下载。当我试图在浏览器中访问url时。。这是404错误。但是文件位置是正确的。但是如果我访问图像或txt,它就会显示出来。。还有其他方法可以访问视频文件吗。。要通过webclient下载我的文件..如果在浏览器中访问URL会导致404,那么使用
    webclient
    将无法下载该文件。因此,如何通过webclient下载视频文件?我已上载了一个示例(1mb)视频文件,我确信它在服务器中。我还尝试使用DownloadFile方法和DownloadFileAsync方法。但它不起作用。真的可以通过webclient下载视频文件吗?您打算如何处理该视频文件?这可能有助于了解,因为您的问题可能存在。我上传了一个示例(1mb)视频文件,我确信它在服务器中。我还尝试使用DownloadFile方法和DownloadFileAsync方法。但它不起作用。真的可以通过webclient下载视频文件吗?您打算如何处理该视频文件?知道可能会有帮助,因为你的问题可能在那里。嗨,拉杰什。。现在我知道了特定的格式不能下载。。你能试试.mp4文件吗。。请让我知道它是否为您下载?是的,我尝试了mp4,最初得到一个错误404。然后我在IIS上浏览我的虚拟目录,然后为它添加一个新的MIME类型。一旦完成了,我就可以从服务器上下载文件了,没有任何问题,拉杰什。我也只是联系了我的服务器支持并添加了MIME类型。。非常感谢你,拉杰什。我对progressbar与下载同步也有一些疑问..嗨Rajesh。。现在我知道了特定的格式不能下载。。你能试试.mp4文件吗。。请让我知道它是否为您下载?是的,我尝试了mp4,最初得到一个错误404。然后我在IIS上浏览我的虚拟目录,然后为它添加一个新的MIME类型。一旦完成了,我就可以从服务器上下载文件了,没有任何问题,拉杰什。我也只是联系了我的服务器支持并添加了MIME类型。。多谢各位