2013-11-22 121 views
0

我使用下面的代碼發送一個excel文件到FTP。文件正在發送,文件大小也一樣。但文件只包含空格。如何使用C#將Excel文件發送到FTP?

ftpAddress = "X.X.X.X"; 
      outFilePath = "MyFolder/Sample.xls"; 
      inFilePath = "D:/Hello.xls"; 
      FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + ftpAddress + "/" + outFilePath); 
      request.Method = WebRequestMethods.Ftp.UploadFile; 
      request.UseBinary = true; 
      request.UsePassive = true; 
      request.KeepAlive = true; 
      request.Credentials = new NetworkCredential(userId, password); 
      //FileStream stream = File.OpenRead(inFilePath); 
      byte[] fileContents = File.ReadAllBytes(inFilePath); 
      //byte[] buffer = new byte[stream.Length]; 
      request.ContentLength = fileContents.Length; 

      Stream requestStream = request.GetRequestStream(); 
      requestStream.Write(fileContents, 0, fileContents.Length); 
      requestStream.Close(); 

      //Shows confirm message 
      FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 
      Console.WriteLine(response); 
      response.Close(); 

請幫忙。提前致謝。

回答

0

來源:http://msdn.microsoft.com/en-us/library/ms229715(v=vs.110).aspx

using System; 
using System.IO; 
using System.Net; 
using System.Text; 

namespace Examples.System.Net 
{ 
public class WebRequestGetExample 
{ 
    public static void Main() 
    { 
     // Get the object used to communicate with the server. 
     FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm"); 
     request.Method = WebRequestMethods.Ftp.UploadFile; 

     // This example assumes the FTP site uses anonymous logon. 
     request.Credentials = new NetworkCredential ("anonymous","[email protected]"); 

     // Copy the contents of the file to the request stream. 
     StreamReader sourceStream = new StreamReader("testfile.txt"); 
     byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); 
     sourceStream.Close(); 
     request.ContentLength = fileContents.Length; 

     Stream requestStream = request.GetRequestStream(); 
     requestStream.Write(fileContents, 0, fileContents.Length); 
     requestStream.Close(); 

     FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

     Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription); 

     response.Close(); 
     } 
    } 
} 

}

+0

這不是爲我工作...你有沒有測試它? –