SFTP를 사용하여 파일을 내 서버로 이동 한 다음 normaly 파일을 다운로드하여 해결되었습니다.
string host = @"host";
string username = "user";
string password = "pass";
string remoteDirectory = "/remote";
string localDirectory = Server.MapPath(@"\pdf\");
using (var sftp = new SftpClient(host, username, password))
{
sftp.Connect();
var files = sftp.ListDirectory(remoteDirectory);
foreach (var file in files)
{
string remoteFileName = file.Name;
if (remoteFileName == "APADEAATTT.csv")
{
using (Stream file1 = File.OpenWrite(localDirectory + "APADEAATTT.csv"))
{
sftp.DownloadFile(remoteDirectory + "APADEAATTT.csv", file1);
}
}
}
}
FileInfo fileInfo = new FileInfo(localDirectory+"APADEAATTT.csv");
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.Name);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.ContentType = "text/csv";
Response.Flush();
Response.WriteFile(fileInfo.FullName);
Response.End();
"SFTP 파일" SFTP는 프로토콜의 하나 인 Secure FTP입니다. 여러분이 묻는 질문이나 ASP.NET과의 관계가 완전히 불분명합니다. –
브라우저에 SFTP로 작업 할 수있는 기능이 없으면 (브라우저에 의존 할 수없는 경우) 브라우저에이 기능이 포함되지 않습니다. 서버에 적절한 라이브러리가 필요합니다. 파일을 다운로드 한 다음 사용자가 다른 파일과 마찬가지로 웹 서버에서 파일을 다운로드 할 수있게해야합니다. – mason
당신은 sftp 서버에서 파일을 스트리밍 할 수 있고 HTTP 응답 스트림에 즉시 바이트를 쓸 수있는 처리기를 작성하면 서버가 브라우저 대신 (sftp를 이해하지 못함) 어댑터가되고 sftp 서버 (그건 http를 이해하지 못합니다) –