2009-06-22 3 views
4

http 요청에 txt 파일과 html 페이지 모두에 응답하고 싶습니다. 이렇게하면 클라이언트는 파일을 저장하고 html 페이지를 통해 해당 파일의 내용 요약을 볼 수 있습니다.다중 부분 http 응답에 대한 사용자 정의 ActionResult?

파일이 즉시 생성되므로 서버의 상태 관리를 사용하여 두 번째 요청에 대한 요약을 생성해야합니다. 나는 이것을 피하고 이것을 하나의 응답으로 마무리하고 싶다.

사용자 정의 ActionResult는 어떤 모양입니까?

답변

2

이것은 also discussed here on SO입니다.

은 내가 이런 식으로 대답 :

아니, 다중 첨부 파일 (이메일에서와 같은) 다운로드 보안상의 이유로 지원되지 않습니다. 그것은 "드라이브 바이 다운로드"라고 불리는 입니다.

Gmail은 파일을 동적으로 압축하여 처리합니다. 당신도 해야합니다. http://forums.asp.net/t/1240811.aspx

나는 현대의 브라우저가 혼합/다중 지원 믿지 않는다.

-1

public ActionResult SendFile(int id) 
    { 
     File file = FileRepository.GetFile(id); 
     byte[] fileData = file.FileData.ToArray(); 
     return File(fileData, file.FileMimeType, file.FileName); 
    } 
+0

나는 이미 이렇게하고있다. 이 방법은 두 번째 작업이 첫 번째 HTML 양식을 렌더링하는 데 사용 된 데이터를 가지지 않기 때문에 서버에서 일부 상태 추적을 수행하도록합니다. 세션을 처리하지 않고이 작업을 수행 할 수있는 방법이 있는지보고 있습니다 (tempdata를 포함하여). –

+0

데이터는 즉석에서 생성됩니다. 데이터베이스에 저장할 수도 있지만 상태 추적의 또 다른 형태 일뿐입니다. 버려야합니다. –

0

당신은 XSLT 스타일 시트를 참조하여 XML을 보낼 수 ... 보통의 HTML보기로 요약 렌더링 및 바이너리 데이터를 반환하는 별도의 ActionResult를 가리키는 요약 아래 링크를 제공하지 . 브라우저는 변환을 수행하여 결과 HTML 출력을 표시 할 수 있습니다.

그리고 사용자는 "파일 -> 다른 이름으로 저장 ..."을 수행하여 XML 파일을 저장할 수 있습니다.

+0

두뇌 폭풍을 가져 주셔서 감사합니다. 불행히도, 내 파일은 XML이 아니며 사용할 수 없습니다. 형식은 기존 회계 시스템에 의해 결정됩니다. 다중 부분 응답에 대한 생각? –

+0

응답 데이터의 일반적인 크기는 얼마입니까? – mkoeller

-1

나는이 주제에 대해 몇 가지 검색을 수행했으며, 놀랍게도 사람들이 이미이 작업을 수행 한 것 같습니다. 설명 here을 찾았지만 공용 테스트 URI를 제공하지 않으므로 이에 대한 브라우저 동작을 테스트 할 수 없습니다. 또한 아카이브 파일을 클라이언트에 전송하는 솔루션에 대해서도 설명합니다. 하지만 네가 찾고 있는게 아니라고 생각해. 그렇지?

Here은 여러 부분 응답이있는 예를 보여주는 또 다른 기사입니다. 안타깝게도 데모 URI가 더 이상 작동하지 않는 것 같습니다.

상황은 다음과 같습니다. HTTP 멀티 파트 응답을 수행 할 수 있습니다. 응용 프로그램 코드에서이를 처리 할 클라이언트 (거의) 라이브러리가 없습니다. 브라우저 동작을 테스트해야합니다 (Here's a voice). 이 기능을 사용하는 것은 시험적인 것으로 보이며 상호 운용성 문제를 제거하기 위해 통신의 양 끝을 제어 할 수만있는 것이 좋습니다.