사용자가 내 사이트에서 다운로드 할 수있는 파일에 문자열을 쓰려고합니다.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를 사용하면 안됩니다. –