2012-09-27 35 views
0

对于我目前正在使用的Web应用程序,我想从互联网下载文件到我的Web服务器。 我可以使用下面的代码将文件下载到Web服务器的硬盘驱动器,我应该如何设置到目标路径才能使其工作。我们计划在共享主机环境中托管此网站。
将文件从互联网下载到ASP.NET MVC Web应用程序

using System.Net; 

using(var client = new WebClient()) 
{ 
    client.DownloadFile("http://file.com/file.txt", @"C:\file.txt"); 
} 

回答

1

我认为常见的方式做到这一点是这样的:

string appdataFolder = AppDomain.CurrentDomain.GetData("DataDirectory").ToString(); 

string appdataFolder = System.Web.HttpContext.Current.Server.MapPath(@"~/App_Data"); 

还要注意,那WebClient类实现IDisposable,所以你应该使用处置或使用结构。
我希望您阅读c#的一些命名约定(本地变量通常以小写字母开头)。

+0

纠正错误尖,无论是在的问题,在我的代码。 – Dhananjaya

0

您可以从您的计算机通过FTP请求上传到服务器,

string _remoteHost = "ftp://ftp.site.com/htdocs/directory/"; 
    string _remoteUser = "site.com"; 
    string _remotePass = "password"; 
    string sourcePath = @"C:\"; 

    public void uploadFile(string name) 
    { 
     FtpWebRequest request = (FtpWebRequest)WebRequest.Create(_remoteHost +name+ ".txt"); 
     request.Method = WebRequestMethods.Ftp.UploadFile; 

     request.Credentials = new NetworkCredential(_remoteUser, _remotePass); 


     StreamReader sourceStream = new StreamReader(sourcePath + name+ ".txt"); 
     byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); 
     sourceStream.Close(); 
     request.ContentLength = fileContents.Length; 

     Stream requestStream = request.GetRequestStream(); 
     requestStream.Write(fileContents, 0, fileContents.Length); 
     requestStream.Close(); 

     FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

     response.Close(); 
    } 
相关问题