2017-08-29 1 views
1

私はSFTPサイトに直接PD​​Fを書きたいと考えています。 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

MemoryStreamからbyte配列をコピーし、

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"); 
それをアップロードする SftpClient.UploadFileを使用します
関連する問題