C#用FTP实现文件上传到指定服务器,我下了几个源码和看了CSDN上网友的一些DD都没能解决,最好能给个源码看看(PS:如果是没经过测试的就不要贴了) 谢谢

解决方案 »

  1.   

    我用 edtFTPnet 挺好的。
      

  2.   

    private static void ftpFile(string sourcefile,string destination)
    {
    string host = System.Configuration.ConfigurationSettings.AppSettings["ftphost"];
    int port = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ftport"]);
    string user = System.Configuration.ConfigurationSettings.AppSettings["ftpuser"];
    string password = System.Configuration.ConfigurationSettings.AppSettings["ftppassword"];
    password = System.Web.HttpUtility.UrlDecode(password);
    string directory = System.Configuration.ConfigurationSettings.AppSettings["ftpdirectory"];
    FTPClient ftp = new FTPClient();
    ftp.RemoteHost = host;
    ftp.ControlPort = port; try
    {
    ftp.Connect();
    ftp.Login(user, password); ftp.TransferType =  FTPTransferType.BINARY;
    ftp.ConnectMode = FTPConnectMode.ACTIVE; ftp.ChDir(directory); ftp.Put(sourcefile,destination,false); ftp.Quit();
    }
    catch(Exception e)
    {
    //Log.WriteLog("ItemBigType","GenratePage",new string[] {"cateid",this._cateid.Trim()});
    throw new ApplicationException(e.Message,e);
    }
    }
      

  3.   

    http://www.sunmast.com/soft/FtpClient.zip
      

  4.   

    速马非常感谢你的帮助,但是使用还是有问题
    程序如下:
    ........
    using Sunmast.Net.FtpClient;
    using System.Net.Sockets;
    using System.IO;
    ........
    try
    {
    FtpConnection conn = new FtpConnection("ftp://ly0000:[email protected]/");
    FtpFile file = new FtpFile(conn,"1.txt");
    Socket soc = file.OpenWrite(TransMode.OverWrite);
    FileStream fs = new FileStream(@"D:\系统开发\ftptest\ftptest\bin\Debug\1.txt",FileMode.Open);
    byte[] bytes = new byte[512];
    int i = 512;
    while(i == 512)
    {
    i = fs.Read(bytes,0,512);
    soc.Send(bytes,0,i,SocketFlags.None);
    }
    soc.Close();
    conn.ReadReply();
    }
    catch(Exception error)
    {
      MessageBox.Show(error.Source+error.Message);
    }提示错误信息:FtpClient550/1.txt:Access is denied
    我用cuteftp完全没问题,我被弄晕了..............
      

  5.   

    private static void ftpFile(string sourcefile,string destination)
    {
    string host = System.Configuration.ConfigurationSettings.AppSettings["ftphost"];
    int port = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ftport"]);
    string user = System.Configuration.ConfigurationSettings.AppSettings["ftpuser"];
    string password = System.Configuration.ConfigurationSettings.AppSettings["ftppassword"];
    password = System.Web.HttpUtility.UrlDecode(password);
    string directory = System.Configuration.ConfigurationSettings.AppSettings["ftpdirectory"];
    FTPClient ftp = new FTPClient();
    ftp.RemoteHost = host;
    ftp.ControlPort = port; try
    {
    ftp.Connect();
    ftp.Login(user, password); ftp.TransferType =  FTPTransferType.BINARY;
    ftp.ConnectMode = FTPConnectMode.ACTIVE; ftp.ChDir(directory); ftp.Put(sourcefile,destination,false); ftp.Quit();
    }
    catch(Exception e)
    {
    //Log.WriteLog("ItemBigType","GenratePage",new string[] {"cateid",this._cateid.Trim()});
    throw new ApplicationException(e.Message,e);
    }
    }
      

  6.   

    楼上的兄弟代码不能用....FTPClient命名空间?
      

  7.   

    我这里有一套东西,PowerTCP FTP for .NET 。控件自带有demo的,有源码。控件我试用过,很好用,现在跑着的程序都有几套了。。
       需要的话联系我,肯定解决你的问题, [email protected]
      

  8.   

    最简单的方法是用ftp命令,或用ftp类,在www.codeproject.com/csharp/ftplibrary.asp有一个