using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SQLite; using System.IO; using System.Net; using System.Reflection; public class FTPHelper { private static readonly string ftpIp = ConfigurationManager.AppSettings["FtpIp"]; private static readonly string port = ConfigurationManager.AppSettings["Port"]; private static readonly string user = ConfigurationManager.AppSettings["User"]; private static readonly string passWord = ConfigurationManager.AppSettings["PassWord"]; ///// ///// FTP的服务器地址,格式为ftp://192.168.1.234:8021/。 ///// //private string FTPCONSTR = ConfigurationManager.AppSettings["Test"]; ///// ///// //FTP服务器的用户名 ///// //private string FTPUSERNAME { get; set; } ///// ///// //FTP服务器的密码 ///// //private string FTPPASSWORD { get; set; } //public FTPHelper(string ip, string username, string password, string port = "21") //{ // FTPCONSTR = string.Format("{0}://{1}:{2}/", "ftp", ip, port); // FTPUSERNAME = username; // FTPPASSWORD = password; //} #region 本地文件上传到FTP服务器 /// /// 上传文件到远程ftp /// /// 本地的文件目录 /// 文件名称 /// public bool UploadFile(byte[] data,string fileName) { //FileInfo f = new FileInfo(path); string path = string.Format("{0}://{1}:{2}/", "ftp", ftpIp, port) + fileName;//这个路径是我要传到ftp目录下的这个目录下 FtpWebRequest reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(path)); reqFtp.Method = WebRequestMethods.Ftp.UploadFile; reqFtp.UsePassive = false;//只需要添加这一句话 reqFtp.UseBinary = true; reqFtp.Credentials = new NetworkCredential(user, passWord); reqFtp.KeepAlive = false; reqFtp.Method = WebRequestMethods.Ftp.UploadFile; reqFtp.ContentLength = data.Length; int buffLength = 2048; byte[] buff = new byte[buffLength]; int contentLen; //FileStream fs = f.OpenRead(); try { Stream strm = reqFtp.GetRequestStream(); while (data.Length != 0) { strm.Write(data, 0, data.Length); } strm.Close(); return true; } catch (Exception ex) { return false; } } #endregion }