private void FtpUpload()
    {
        string ftpServerIP = "192.168.2.16:21";
        string uri = "ftp://" + ftpServerIP + "/" + "TheName";
        FtpWebRequest reqFTP;
        // 根据uri创建FtpWebRequest对象 
        reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + "TheName"));//fileInf.Name
        // ftp用户名和密码 
        //reqFTP.Credentials = new NetworkCredential("jssys", "jssys");
        // 默认为true,连接不会被关闭 
        // 在一个命令之后被执行 
        reqFTP.KeepAlive = false;
        // 指定执行什么命令 
        reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
        // 指定数据传输类型 
        reqFTP.UseBinary = true;
        // 上传文件时通知服务器文件的大小 
        reqFTP.ContentLength = FileUpload1.PostedFile.ContentLength;
        // 缓冲大小设置为2kb 
        int buffLength = 2048;
        byte[] buff = new byte[buffLength];
        int contentLen;
        // 打开一个文件流 (System.IO.FileStream) 去读上传的文件 
        Stream fs = FileUpload1.PostedFile.InputStream;//fileInf.OpenRead();
        try
        {
            // 把上传的文件写入流 
            Stream strm = reqFTP.GetRequestStream();
            // 每次读文件流的2kb 
            contentLen = fs.Read(buff, 0, buffLength);
            // 流内容没有结束 
            while (contentLen != 0)
            {
                // 把内容从file stream 写入 upload stream 
                strm.Write(buff, 0, contentLen);
                contentLen = fs.Read(buff, 0, buffLength);
            }
            // 关闭两个流 
            strm.Close();
            fs.Close();
        }
        catch
        {
        }
    }

解决方案 »

  1.   

    楼上贴的是上传FTP的代码吧。我想要的是,根据ip 端口 用户密码 ,
    弹出一个对话框浏览该FTP上的文件,并把它的路径选择在textbox 中。。我的目的很简单,就是获取一个FTP的文件路径保存到数据库
      

  2.   

    服务器的FTP主目录不太可能是WWW目录下的,那样太不安全。
      

  3.   

    FTP传输协议根据协议发送相应命令,解析收到的消息。