再问一下:
对方告诉我的远程服务器及文件夹为:\\100.110.120.155\AVS_FilePort\Input  这样对吗?
在程序中写:
string uriString = @"\\100.110.120.155\\AVS_FilePort\Input";  //前面要加上@
还是写:
string uriString = "http://100.110.120.155/AVS_FilePort/Input";那后面的语句:
if (uriString.EndsWith("/") == false) uriString = uriString + "/";
会不会出问题?

解决方案 »

  1.   

    到底用http协议、ftp协议还是windows file share传输?你的代码99%不可用。
      

  2.   


      //要上传的文件,远程FTP的IP,远程目录,用户名,密码
          public void Upload(string filename, string ftpServerIP, string dir, string ftpUserID, string ftpPassword)
          {
             
              FileInfo fileInf = new FileInfo(filename);
              string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;
              FtpWebRequest reqFTP;
              reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + dir + fileInf.Name));
              // ftp用户名和密码 
              reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
              // 根据uri创建FtpWebRequest对象 
              // 默认为true,连接不会被关闭 
              // 在一个命令之后被执行 
              reqFTP.KeepAlive = false;
              // 指定执行什么命令 
              reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
              // 指定数据传输类型 
              reqFTP.UseBinary = true;
              // 上传文件时通知服务器文件的大小 
              reqFTP.ContentLength = fileInf.Length;
              // 缓冲大小设置为2kb 
              int buffLength = 2048;
              byte[] buff = new byte[buffLength];
              int contentLen;
              // 打开一个文件流 (System.IO.FileStream) 去读上传的文件 
              FileStream fs = 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();
                  //  MessageBox.Show("短信发送成功!!!");
              }
              catch (Exception ex)
              {
                  //   MessageBox.Show(ex.Message, "Upload Error");
              }      }
          private void FTP_Click(object sender, EventArgs e)
          {
              Upload(Application.StartupPath + @"\xml\test.xml", "100.110.120.155", "/AVS_FilePort/Input/", "user", "password");
          }