上传文件到服务器 /// <summary> /// Description:采用FTP方式上传文件至文件服务器 /// Authoer: /// Date:2008-9-02 /// </summary> /// <param name="FileName"></param> /// <returns></returns> public static bool UpLoadFile(string FileName) { //FTP基本参数设置 string Load_Ftp_Address = System.Configuration.ConfigurationManager.AppSettings["Upload_Ftp_Address"].ToString(); string Load_Ftp_UserId = System.Configuration.ConfigurationManager.AppSettings["Upload_Ftp_UserId"].ToString(); string Load_Ftp_Password = System.Configuration.ConfigurationManager.AppSettings["Upload_Ftp_Password"].ToString(); string FTPServerIP = Load_Ftp_Address; string UserName = Load_Ftp_UserId; string PassWord = Load_Ftp_Password; FileInfo fileInfo = new FileInfo(FileName); string uri = FTPServerIP + fileInfo.Name; // 根据uri创建FtpWebRequest对象 FtpWebRequest ftpRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri)); //ftpRequest.EnableSsl = true; // ftp用户名和密码 ftpRequest.Credentials = new NetworkCredential(UserName, PassWord); // 默认为true,连接不会被关闭 // 在一个命令之后被执行 ftpRequest.KeepAlive = false; // 指定执行什么命令 Upload Or DownFile ftpRequest.Method = WebRequestMethods.Ftp.UploadFile; // 指定数据传输类型 ftpRequest.UseBinary = true; // 上传文件时通知服务器文件的大小 ftpRequest.ContentLength = fileInfo.Length; // 缓冲大小设置为2kb int buffLength = 2048; byte[] buff = new byte[buffLength]; int contentLen; //打开一个文件流读取文件 FileStream fileStream = fileInfo.OpenRead(); try { // 把上传的文件写入流 Stream stream = ftpRequest.GetRequestStream(); // 每次读文件流的2kb contentLen = fileStream.Read(buff, 0, buffLength); // 流内容没有结束 while (contentLen != 0) { // 把内容从file stream 写入 upload stream stream.Write(buff, 0, contentLen); contentLen = fileStream.Read(buff, 0, buffLength); } // 关闭两个流 stream.Close(); fileStream.Close(); return true; } catch (Exception e) { //写入日志 return false; } } 下载文件到服务器 /// <summary> /// Description:采用FTP方式从服务器下载文件 /// Authoer: /// Date:2008-9-02 /// </summary> /// <returns></returns> public static bool DownLoadFile(string FilePath, string FileName) { //FTP基本参数设置 string FTPServerIP = "220.173.136.124"; string UserName = ""; string PassWord = ""; string uri = "ftp://" + FTPServerIP + "/" + FileName; try { FtpWebRequest ftpRequest = (FtpWebRequest)FtpWebRequest.Create(uri); FileStream outputStream = new FileStream(FilePath + "//" + FileName, FileMode.Create); // ftp用户名和密码 ftpRequest.Credentials = new NetworkCredential(UserName, PassWord); // 指定执行什么命令 Upload Or DownFile ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile; // 指定数据传输类型 ftpRequest.UseBinary = true; FtpWebResponse response = (FtpWebResponse)ftpRequest.GetResponse(); Stream ftpStream = response.GetResponseStream(); //long cl = response.ContentLength; // 缓冲大小设置为2kb int bufferSize = 2048; int readCount; byte[] buffer = new byte[bufferSize]; readCount = ftpStream.Read(buffer, 0, bufferSize); while (readCount > 0) { outputStream.Write(buffer, 0, readCount); readCount = ftpStream.Read(buffer, 0, bufferSize); } ftpStream.Close(); outputStream.Close(); response.Close(); return true; } catch (Exception e) { //写入日志 return false; } }