2017-08-29 91 views
1

我希望將PDF直接寫入SFTP站點。 PDF是從ReportExecutionService.Render(SSRS)生成的。使用SSH.NET將數據從內存上傳到SFTP服務器

ReportExecutionService rsExec = new ReportExecutionService(); 

我已經能夠在本地寫文件使用FileStream。我生成了數百萬個文件,所以我希望能夠使用SSH.NET直接在SFTP上編寫它們。採用rsExec.Render結果並使用SSH.NET寫入SFTP的語法是什麼?

string deviceInfo = null; 
string extension; 
string encoding; 
string mimeType; 
ConsoleApp2.ReportExecution2005.Warning[] warnings = null; 
string[] streamIDs = null; 
string format = "PDF"; 

Byte[] results = 
    rsExec.Render(
     format, deviceInfo, out extension, out mimeType, out encoding, 
     out warnings, out streamIDs); 
FileStream stream = File.OpenWrite("C:\\test.pdf"); 
stream.Write(results, 0, results.Length); 
stream.Close(); 

回答

2

複製byte陣列到MemoryStream並使用SftpClient.UploadFile上傳它

var client = new SftpClient(host, port, username, password); 
client.Connect(); 
var stream = new MemoryStream(); 
stream.Write(results, 0, results.Length); 
stream.Position = 0; 
client.UploadFile(stream, "/remote/path/my.pdf"); 
相關問題