我正在使用以下代码通过FTP发送XML文件:
var request = (FtpWebRequest) WebRequest.Create(destination);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(UserName, Password);
byte[] fileContents;
using (StreamReader sourceStream = new StreamReader(originpath + filename))
{
fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
}
request.ContentLength = fileContents.Length;
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(fileContents, 0, fileContents.Length);
}
这似乎可行,除了原始文件的格式为带有签名的utf-8 ,而目标文件的格式为没有签名。
我试图保留utf编码,但似乎丢失了BOM。
我的代码是否有问题-特别是requeststream.write的工作方式是什么?