FTP上传

本文介绍了一种使用C#实现FTP文件上传的方法。具体步骤包括检查文件是否存在、创建FTP请求、设置请求参数、读取文件流并发送到FTP服务器等。通过示例代码展示了如何进行FTP文件的二进制传输。
 if (File.Exists(fileName))
                {
                    FileInfo fileInf 
= new FileInfo(fileName);
                    
string uri = FtpUrl + "/" + fileInf.Name;
                    
//FTP
                    FtpLink = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
                    FtpLink.UseBinary 
= true;
                    FtpLink.Credentials 
= new NetworkCredential(FtpUserName, FtpUserPwd);
                    FtpLink.KeepAlive 
= false;
                    FtpLink.Method 
= WebRequestMethods.Ftp.UploadFile;
                    FtpLink.ContentLength 
= fileInf.Length;

                    
int BuffLength = 2048;
                    
byte[] buff = new byte[BuffLength];
                    
int contentLen;
                    FileStream fs 
= fileInf.OpenRead();
                    
try
                    {
                        Stream strm 
= FtpLink.GetRequestStream();
                        logger.Trace(DateTime.Now 
+ ",Ftp:文件总大小:" + fileInf.Length / 1024 + "k");
                        contentLen 
= fs.Read(buff, 0, BuffLength);
                        
int OKlen = 0;
                        
while (contentLen != 0)
                        {

                            strm.Write(buff, 
0, contentLen);
                            OKlen 
+= contentLen;

                            
//Logger.WriteInfo(FtpName, DateTime.Now.ToString() + ",Ftp:文件总大小:" + fileInf.Length / 1024 + "k,已经上传: " + OKlen / 1024 + "k");
                            contentLen = fs.Read(buff, 0, BuffLength);
                        }
                        strm.Close();
                        fs.Close();
                        logger.Trace(DateTime.Now 
+ ":上传完毕");
                        File.Delete(fileName);

                    }
                    
catch (Exception ex)
                    {
                        logger.Error(DateTime.Now 
+ ":" + ex.Message);
                    }
                }

转载于:https://www.cnblogs.com/renjuwht/archive/2011/06/08/2075221.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值