これを解決するには、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(おそらく頼りにいられないもの)で動作する能力を持っていない限り、ブラウザはこれに関与しません。サーバーには適切なライブラリが必要です。ファイルをダウンロードし、他のファイルと同じようにWebサーバーからファイルをダウンロードできるようにする必要があります。 – mason
あなたは、sftpサーバからファイルをストリーミングし、すぐにhttp応答ストリームにバイトを書き込むことができるハンドラを書くことを検討するかもしれません。したがって、あなたのサーバは(sftpを理解していない)ブラウザとsftpサーバ(それはhttpを理解していません) –