-3
我試圖使用C#和asp.net下載SFTP文件(.csv),但所有示例都需要我有一個遠程文件目錄。ASP.NET使用瀏覽器下載SFTP文件
對於這種情況,我需要瀏覽器下載文件,而不是放在目錄中,因爲瀏覽器(客戶端)無法直接將文件放入目錄。
有沒有人以前做過這個?
我試圖使用SSH.NET,但沒有找到辦法做到這一點。
我試圖使用C#和asp.net下載SFTP文件(.csv),但所有示例都需要我有一個遠程文件目錄。ASP.NET使用瀏覽器下載SFTP文件
對於這種情況,我需要瀏覽器下載文件,而不是放在目錄中,因爲瀏覽器(客戶端)無法直接將文件放入目錄。
有沒有人以前做過這個?
我試圖使用SSH.NET,但沒有找到辦法做到這一點。
解決了這個,通過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) –