2012-03-29 1 views
2

の終わりに不要な(ゴミ)文字を追加します。しかし、ファイルの最後にあるこれらすべてのステップの後に、私は㼼浸敶獲潩㵮likeのようなゴミ箱の文字を取得します...問題はどこですか?ファイルは、そのファイル、ストリーミングするためにXMLドキュメントを保存し、それを変更し、FTPでファイルを保存している私は何をしようと

XmlDocument xmlD = (XmlDocument)xmlDocument.Clone(); 
byte[] fileContents = Encoding.Default.GetBytes(xmlD.OuterXml); 
//ftpWReqUpload - FtpWebRequest to upload file 
Stream requestStream = ftpWReqUpload.GetRequestStream(); 
xmlD.Save(requestStream); 
ftpWReqUpload.ContentLength = fileContents.Length; 
requestStream.Write(fileContents, 0, fileContents.Length); 
requestStream.Close(); 
+0

[この回答](http://stackoverflow.com/a/8495303/335858)を見てみましょう、それがソースとしてファイルストリームを使用して技術を実証し、私はそれがために採用できることを確信していますあなたの目的。 – dasblinkenlight

答えて

1

私が見るところでは、ドキュメントを2回アップロードしています。最初にxmlD.Save()をストリームに書き込むと、元のエンコーディングでドキュメントが保存され、システムのデフォルトエンコーディングを使用して同じドキュメントから取得したバイト配列が書き出されます。私はあなたがちょうど何かのようなことをすればそれは疑う。

XmlDocument xmlD = xmlDocument as XmlDocument; 
Stream requestStream = ftpWReqUpload.GetRequestStream(); 
xmlD.Save(requestStream); 
requestStream.Close(); 

となります。

編集:私は質問へのコメントにいくつかの作業コードへのリンクを追加しました@dasblinkenlight見、あなたが応答を処理する方法のアイデアを得るために、その時に見てみたいことがあります。

+0

Worked!ありがとう :) – Paul

0

私はFTP経由のファイルをアップロードするために使用しているコードは、ほぼ同じであるが、それはラインを持っていない

ftpWReqUpload.ContentLength = fileContents.Length; 

MSDNあなたのコードでそれを使うべきではないと言います。それなしで試してみてください。

+0

残念ながら、それは動作しませんでした – Paul

関連する問題