나는 브라우저에 파일을 스트리밍하는 C#/ASP.NET의 도우미 메서드를 작성 중이며 응답 헤더/콘텐츠를 지우기 전에 브라우저에 내용이 기록되었는지 감지 할 수 있기를 바랍니다. 파일 바이트를 보내는 중. 내 도우미 메소드를 호출하는 페이지가 올바르게 설정되지 않은 경우 "정상적인"페이지 헤더 및 컨텐츠가 브라우저로 전송되기 전에 가능할 수있는 것처럼 보입니다. 전체 응답 및 파일 데이터로 새로 시작하십시오. 그래서 이미 데이터가 전송되었는지 알 수있는 방법이 있습니까?응답 데이터가 아직 ASP.NET에 클라이언트로 전송되었는지 어떻게 알 수 있습니까?
기본적으로,이 예제의 가짜 속성 BytesSent 같은 것을 찾고 있어요 :
if (response.BytesSent == 0)
{
response.ClearHeaders();
response.ClearContent();
response.Clear();
response.ContentType = "application/octet-stream";
response.AppendHeader("Content-Disposition", "attachment; filename=" + filename);
response.AppendHeader("Content-Length", new FileInfo(path).Length.ToString());
//
// etc. (stream the file)
//
}
else
{
// throw an exception (or handle the problem in some other way)
}