点晴MIS内部交流论坛加入收藏
新手上路
论坛搜索
 您的位置:点晴MIS系统问题答疑『 技术文档交流 』浏览当前帖子  
登 陆注 册论坛帮助  

  网站搜索
  搜索范围: 搜索方式: 关键词(可用空格分开)  

  作者及文章信息: 本文热度:448 % 
admin

积分:73120
等级:网站管理员
文数:12753
注册:2004-7-20

 信息   留言   主页   编辑   引用    

楼 顶 

 【C#】两个FTP服务器之间传送数据


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.IO;
using System.Text;
 
public class FtpUpDown
{
    string ftpServerIPout;
    string ftpServerIPin;
    string ftpUserIDout;
    string ftpUserIDin;
    string ftpPasswordout;
    string ftpPasswordin;
    FtpWebRequest reqFTPout;
    FtpWebRequest reqFTPin;
 
   public FtpUpDown(string ftpServerIPout, string ftpUserIDout,string ftpPasswordout,string ftpServerIPin, string ftpUserIDin ,string ftpPasswordin)
   {
 
        this.ftpServerIPout = ftpServerIPout;
        this.ftpServerIPin=ftpServerIPin;
        this.ftpUserIDout = ftpUserIDout;
        this.ftpUserIDin = ftpUserIDin;
        this.ftpPasswordout = ftpPasswordout;
        this.ftpPasswordin = ftpPasswordin;
 
    }
    private void Connect(string pathout, string pathin)//连接ftp
    {
        // 根据uri创建FtpWebRequest对象
        reqFTPout = (FtpWebRequest)FtpWebRequest.Create(new Uri(pathout));
        // 指定数据传输类型
        reqFTPout.UseBinary = true;
        // ftp用户名和密码
        reqFTPout.Credentials = new NetworkCredential(ftpUserIDout, ftpPasswordout);
        reqFTPout.Method=WebRequestMethods.Ftp.DownloadFile;
        // 根据uri创建FtpWebRequest对象
        reqFTPin = (FtpWebRequest)FtpWebRequest.Create(new Uri(pathin));
        // 指定数据传输类型
        reqFTPin.UseBinary = true;
        // ftp用户名和密码
        reqFTPin.Credentials = new NetworkCredential(ftpUserIDin, ftpPasswordin);
        reqFTPin.Method = WebRequestMethods.Ftp.UploadFile;
    }
   public bool Download(string fileName)/**/////上面的代码实现了从ftp服务器下载文件的功能
   {
       try
       {
            string urlout = "ftp://" + ftpServerIPout + "/" + fileName;
            string urlin = "ftp://" + ftpServerIPin + "/" + fileName;
            Connect(urlout, urlin);//连接
            FtpWebResponse response = (FtpWebResponse)reqFTPout.GetResponse();
            Stream ftpStream = response.GetResponseStream();
            long cl = response.ContentLength;
            int bufferSize = 2048;
            int readCount;
            byte[] buffer = new byte[bufferSize];
            readCount = ftpStream.Read(buffer, 0, bufferSize);
            Stream strm = reqFTPin.GetRequestStream();
            while (readCount != 0)
            {
                strm.Write(buffer, 0, bufferSize);
                readCount = ftpStream.Read(buffer, 0, bufferSize);
            }
            ftpStream.Close();
            strm.Close();
            response.Close();
            return true;
       }
       catch
       {
            return false;
 
       }
    }
       
    }
 
后台调用:
 
protected void Button1_Click(object sender, EventArgs e)
    {
          FtpUpDown ftpUpDown = new FtpUpDown("192.168.0.26", "tfds", "tfds","192.168.0.34","tfds","tfds");
          ftpUpDown.Download("2.txt");
          Response.Write("success");
 
    }

该文章在 2021/10/16 14:36:18 编辑过

  离 线  2021/10/16 14:36:17 
  本文章共有 0 页, 0 张回文,每页有 10 张回文 >> [ ]
页码:
Copyright 2003-2021 ClickSun All Rights Reserved