2014-04-01 9 views
1

내 서버에 내 클라이언트에 보낼 워드 문서가 있습니다. 사실 나는 그 파일을 다운로드하길 원한다. 나는 런타임에 그 파일을 만들고 있는데, 내 서버에서 파일을 다운로드 한 후 삭제하려고한다. 이 시나리오를 로컬로 시도하고 있습니다. 파일을 만든 후에 내 서버가 파일을 클라이언트로 보냅니다.클라이언트로 파일 보내기 및 삭제

enter image description here

나는 이것을 원하지 않는다 : 웹 브라우저에서 나는 이것이 참조하십시오. 웹 브라우저가 파일 저장 대화 상자를 열길 원합니다. 클라이언트가 실제 파일을 다운로드하길 원합니다.

  Guid temp = Guid.NewGuid(); 
      string resultFilePath = Server.MapPath("~/formats/sonuc_" + temp.ToString() + ".doc"); 
      if (CreateWordDocument(formatPath, resultFilePath , theLst)) { 

       Response.TransmitFile(resultFilePath); 

       Response.Flush(); 

       System.IO.File.Delete(resultFilePath); 

       Response.End(); 
      } 

답변

6

이 스 니펫은 트릭을 수행해야하지만 전체 파일을 (서버의) 메모리로로드하게됩니다.

1

당신이 원하는 것은 (웹 페이지 인)을 .aspx 파일이 아니라 당신이 필요로하는 데이터를 제공하고, 내용 - 처리를 설정할 수 있습니다 .ashx : 여기 내 코드입니다. 또한 아마도 다음과 같은 말씀에 대한 올바른 콘텐츠 형식/MIME 타입을 설정하려고 할 수

Downloading files using ASP.NET .ashx modules

하거나 take a look at this question을 수도 : (여기 PDF-다운로드 사용) 예를 들어,이 질문을 참조하십시오.

response.ContentType = "application/msword"; 
response.AddHeader("Content-Disposition", "attachment;filename=\"yourFile.doc\""); 
+0

나는 여러분 께 계셨기 때문에 다음 예제를 따라 왔습니다. http://davidarodriguez.com/blog/2013/05/29/downloading-files-from-a-server-to-client- using-asp-net-when-file-size-is-for-memorystream-generic-handler-ashx /. 그러나 .ashx 클래스에 파일 이름을 전달해야합니까? – MilesDyson

+1

.ashx에 이름을 전달하거나 ashx가 어딘가에서 파일을 가져올 수 있습니다. 요점은 클라이언트/브라우저로 전송할 데이터 유형을 지정해야하며, 원하는 방식입니다 그 데이터를 처리하고, 이것은 내용 유형과 헤더를 지정하여 수행됩니다. – Kjartan

관련 문제