2012-04-16 5 views
-1

내 코드의 조각이다. 데이터 테이블에서 데이터를 읽고 응답에 쓰고 다운로드 용 파일을 가져옵니다. 그러나 거대한 파일을 다운로드하려고 시도하는 동안 오류가 발생합니다.()는 여기에

프로그램 실행 중 메모리가 부족합니다. 들었어요 response.transmit. 이 문제를 해결할 수는 있지만 어떻게 할 수 있습니까?

+0

? 그리고 어디에서이 오류가 발생합니까? 웹 서버에서? 클라이언트 브라우저 에서요? 클라이언트 응용 프로그램에서? – RQDQ

+0

언제 Response.Transmit() 메서드를 호출합니까? 코드 조각에 중요한 정보가 누락 된 것 같습니다. – Xharze

+0

클라이언트 broswer와 파일 크기가 @RQDQ 인 경우 약 180MB입니다. – Jay

답변

1

TransmitFile 지정된 파일을 HTTP 응답 출력 스트림에 메모리에 버퍼링하지 않고 직접 씁니다. 이 같은

:

"거대한"얼마나 큰
 context.Response.Clear(); 
     context.Response.ContentType = "application/octet-stream"; 
     context.Response.AddHeader("content-disposition", "attachment; filename=ym.jpg"); 
     context.Response.TransmitFile(context.Server.MapPath(@"~/ym.jpg")); 
     context.Response.End(); 
+0

ok ...하지만 내 데이터 테이블에 대해 어떻게 writting에 갈거야 ?? – Jay

+0

@Jay 먼저 파일에 저장하십시오. 그런 다음 파일을 전송 –

+0

okk..i 그냥 의심의 여지가, response.write 메모리에 내용을 작성합니까? 메모리 예외를 일으키는 dat wats입니다 – Jay

관련 문제