C# 中 SFTP 服务器上文件的流接口 SSH.NET
Stream interface to a file on SFTP server in C# SSH.NET
我正在使用 SSH.NET 连接到 SFTP 服务器并尝试将图像读入流中以便在我的网页中显示它。
SftpClient client = connectToServer(IP,user,pwd);
string remotePath = client.WorkingDirectory.ToString() + dto.Directory + "/";
FileStream fs = new FileStream(remotePath + dto.FileName,FileMode.Open);
Stream strm = fs;
以上代码抛出无效字符异常。我不确定这是不是因为服务器上的文件名,即所有这些文件都使用 *
分隔符存储,即 Text1*Text2*Text3.00.png
.
如果是,请问还有其他读取流的方法吗?
我也曾尝试从 HttpResponse.OutputStream
中读取,但会引发 read/seek 无效异常。
HttpResponse response = HttpContext.Current.Response;
Stream strm = response.OutputStream;
还有其他方法可以读取此类图像文件吗?
这是使用 FtpWebRequest
实现相同功能的工作代码。
var request = (FtpWebRequest)WebRequest.Create(serverUri);
request.UsePassive = true;
request.UseBinary = true;
request.Credentials =//
request.Method = WebRequestMethods.Ftp.DownloadFile;
response = (FtpWebResponse)await request.GetResponseAsync();
Stream responseStream = response.GetResponseStream();
我正在使用 SSH.NET 将其更改为 SFTP。
有没有办法用 SSH.NET 获得与 GetResponseStream()
相同的输出?
如果您需要获取 Stream
API 到 SFTP 服务器上的文件,请使用 SSH.NET SftpClient.Open[Read]
:
Stream fs = client.OpenRead(remotePath);
我正在使用 SSH.NET 连接到 SFTP 服务器并尝试将图像读入流中以便在我的网页中显示它。
SftpClient client = connectToServer(IP,user,pwd);
string remotePath = client.WorkingDirectory.ToString() + dto.Directory + "/";
FileStream fs = new FileStream(remotePath + dto.FileName,FileMode.Open);
Stream strm = fs;
以上代码抛出无效字符异常。我不确定这是不是因为服务器上的文件名,即所有这些文件都使用 *
分隔符存储,即 Text1*Text2*Text3.00.png
.
如果是,请问还有其他读取流的方法吗?
我也曾尝试从 HttpResponse.OutputStream
中读取,但会引发 read/seek 无效异常。
HttpResponse response = HttpContext.Current.Response;
Stream strm = response.OutputStream;
还有其他方法可以读取此类图像文件吗?
这是使用 FtpWebRequest
实现相同功能的工作代码。
var request = (FtpWebRequest)WebRequest.Create(serverUri);
request.UsePassive = true;
request.UseBinary = true;
request.Credentials =//
request.Method = WebRequestMethods.Ftp.DownloadFile;
response = (FtpWebResponse)await request.GetResponseAsync();
Stream responseStream = response.GetResponseStream();
我正在使用 SSH.NET 将其更改为 SFTP。
有没有办法用 SSH.NET 获得与 GetResponseStream()
相同的输出?
如果您需要获取 Stream
API 到 SFTP 服务器上的文件,请使用 SSH.NET SftpClient.Open[Read]
:
Stream fs = client.OpenRead(remotePath);