C#-使用HttpWebRequest传输到ftp站点
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-使用HttpWebRequest传输到ftp站点,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1634字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试将Excel文件传输到sftp站点,并且我的代码可以正确执行,但是在站点上看不到该文件.
private static void SendFile(string FileName)
{
FileStream rdr = new FileStream(FileName + ".csv", FileMode.Open);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://sftp.somesite.com");
HttpWebResponse resp;
req.Method = "Post";
req.Credentials = new NetworkCredential("UN", "PW", "Domain");
req.ContentLength = rdr.Length;
req.AllowWriteStreamBuffering = true;
Stream reqStream = req.GetRequestStream();
byte[] inData = new byte[rdr.Length];
int bytesRead = rdr.Read(inData, 0, Convert.ToInt32(rdr.Length));
reqStream.Write(inData, 0, Convert.ToInt32(rdr.Length));
rdr.Close();
}
我不确定上面的代码在做什么错.预先感谢您的协助.
解决方法:
为什么不改用FtpWebRequest?
using System.Net;
using System.IO;
public class Ftp
{
private static void ftpUpload(string filename, string destinationURI)
{
FileInfo fileInfo = new FileInfo(filename);
FtpWebRequest reqFTP = CreateFtpRequest(new Uri(destinationURI));
reqFTP.KeepAlive = false;
// Specify the command to be executed.
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
// use binary
reqFTP.UseBinary = true;
reqFTP.ContentLength = fileInfo.Length;
// Buffer size set to 2kb
const int buffLength = 2048;
byte[] buff = new byte[buffLength];
// Stream to which the file to be upload is written
Stream strm = reqFTP.GetRequestStream();
FileStream fs = fileInfo.OpenRead();
// Read from the file stream 2kb at a time
int cLen = fs.Read(buff, 0, buffLength);
// Do a while till the stream ends
while (cLen != 0)
{
// FTP Upload Stream
strm.Write(buff, 0, cLen);
cLen = fs.Read(buff, 0, buffLength);
}
// Close
strm.Close();
fs.Close();
}
}
内容总结
以上是互联网集市为您收集整理的C#-使用HttpWebRequest传输到ftp站点全部内容,希望文章能够帮你解决C#-使用HttpWebRequest传输到ftp站点所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。