如何在C#中将文件从网站下载到Web服务器?

时间:2012-12-27 19:26:33

标签: c# asp.net webserver download

我有一个由GoDaddy(Windows服务器托管)托管的网站。我希望能够直接从互联网上下载文件(例如http://ichart.finance.yahoo.com/table.csv?s=SIRI&d=11&e=27&f=2012&g=d&a=8&b=13&c=1994&ignore=.csv)到Web服务器上托管的文件夹(例如App_Data)。也许这涉及FTP?我正在使用ASP .NET 3.5和C#。

编辑:我遇到的问题是如何直接下载文件到服务器,而不是如何下载文件。由于Web服务器需要权限,因此不像将文件下载到本地计算机那么简单。此外,代码将从Web服务器本身运行。

编辑:这不是cron job。

更新:因此,ASP应用程序正在GoDaddy服务器上运行(即托管我的网站)。我试图能够使用该应用程序将文件直接下载到该服务器。以下是我尝试过的代码。这段代码编译得很好,但是,在上传到服务器之后,它会给我一个运行时错误。

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string URL = @"http://ichart.finance.yahoo.com/table.csv?s=SIRI&d=11&e=19&f=2012&g=d&a=8&b=13&c=1994&ignore=.csv";

        System.Net.WebClient downloadSite;
        downloadSite = new System.Net.WebClient();
        downloadSite.DownloadFile(URL, @"ftp://<ftp user name>:<ftp password>@<ftp ip address>");
    }
}

2 个答案:

答案 0 :(得分:2)

检查WebClient.DownloadFile方法:

答案 1 :(得分:2)

这个例子将

        string uri = "http://ichart.finance.yahoo.com/table.csv?s=SIRI&d=11&e=27&f=2012&g=d&a=8&b=13&c=1994&ignore=.csv";
        var httpRequest = WebRequest.Create(uri) as HttpWebRequest;
        var httpResponse = httpRequest.GetResponse();
        var httpStream = httpResponse.GetResponseStream();
        using (var fileStream = new FileStream("D:\\test.csv" , FileMode.OpenOrCreate))
        {
            httpStream.CopyTo(fileStream);
        }

将下载并保存到文件