파일 업로드가 포함 된 브라우저에서 POST를 허용하는 작은 클래스가 있습니다. . 나는 몸에 도착할 때 나는에서는 StreamReader를 사용하고있어 그것을 읽고 난 헤더를 읽을 다음, 그 위에 다음 stream.ReadBlock()
컨텐츠 길이를받을 수 있도록 크기의 배열을 만들고 :StreamReader 이진 파일에서 ReadBlock이 멈 춥니 다
char[] buffer = new char[contentLength];
stream.ReadBlock(buffer, 0, contentLength);
String body = new string(buffer);
때 이것을 실행하고 POST로 텍스트 파일을 작성하면 정상적으로 작동합니다. 그러나 ZIP 파일과 MP3 파일을 모두 시도했지만 그 중 어느 것도 작동하지 않았습니다. 전화가 stream.ReadBlock()
인 경우에만 작동합니다.
우분투 10.04에서 Mono 2.6.7을 사용해 보았습니다 (내 MonoDevelop 프로젝트는 .net 3.5를 사용하도록 설정 됨). 그리고 Visual Studio 2010 및 .net 3.5에서 동일한 프로젝트를 실행하여 Windows7에서도 동일한 작업이 수행되었음을 확인했습니다. Firefox와 Chrome 모두에서 게시를 시도했습니다.
누구에게 이런 일이 일어날 수 있는지 실마리가 있습니까? 감사.
은 또한 대신 위해 StreamReader의 BinaryReader를 사용하여 시도 :byte[] bytes = reader.ReadBytes(contentLength);
을하지만 지금은 무슨 일이 있어도 그 전화에 매달려하지 끝납니다. 내가 StreamReader를 사용하여 POST 헤더를 읽고 BinaryReader를 사용하여 본문을 읽었습니까?
BinaryReader를 사용하도록 바꿨으며 여전히 읽기가 멈췄습니다. – Joel
@Joel : 새 코드를 표시하기 위해 질문을 업데이트해야합니다. –
StreamReader가 텍스트 용이고 BinaryReader가 바이너리 용이라는 것을 알고 있습니다. 하지만 그것이 독서에 집착하는 이유를 설명합니까? textreader가 여전히 그것을 읽었을 뿐이고, 인코딩 등으로 내용을 망칠까요? – Joel