ユーザーが自分のサイトからダウンロードできるファイルに文字列を書き込もうとしています。Response.BinaryWrite() - ファイルの先頭で迷惑メールを取得する
var tcxString = "Some code to get my string";
byte[] bytes;
MemoryStream cvsStream = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(cvsStream, tcxString);
cvsStream.Seek(0, SeekOrigin.Begin);
bytes = cvsStream.ToArray();
Response.Clear();
Response.AppendHeader("content-length", cvsStream.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.AppendHeader("content-disposition", "attachment; filename=MyFileName.txt");
Response.BinaryWrite(bytes);
出力は次のようになります。
ÿÿÿÿ Some code to get my string
私はそれが私の場所を求めるが、私はあるべき正しいシークかわからないとしなければならない推測しています。ファイルの最後に迷惑メールがあることもあります。ファイルの先頭と最後に迷惑メールを取り除くにはどうすればよいですか?
あなたは本当に何をしようとしていますか?あなたの文字列の内容を出力に書き込んでみて、ユーザーがそれをダウンロードできるようにしてください。 binaryFormatterを使用するのではなく、文字列をレスポンスに直接書き込んでください(AppenHeaderの呼び出しは、クライアントがダウンロードとして扱うようにします)。迷惑メールは、いくつかの型/インスタンス情報を付加して文字列を直列化するBinaryFormatterの製品です。 – Polity
なぜ 'WriteFile'の代わりに' BinaryWrite'を使うのですか? – Oded
polity is right .. binaryFormatterを使用しないでください –