2016-06-07 4 views
1

저는 일부 pdf 파일과 워드 문서를 사용자에게 보여줄 웹 어플리케이션이 있습니다. PDF로이 브라우저 창에서 완벽하게 렌더링 버튼을 클릭하면 그러나 나는 .doc 파일이 다운로드하고.doc 파일이 C#을 사용하여 웹 브라우저에 완벽하게 표시되지 않습니다.

  HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(FilePath); 
      WebResponse myResp = myReq.GetResponse(); 
      //Response.AddHeader("Content-Disposition", "inline; filename=\"" + FileName + "\""); 
      Response.AppendHeader("Content-Disposition", "inline; filename=\"" + FileName + "\""); 
      Response.ContentType = "application/msword"; 
      using (Stream stream = myResp.GetResponseStream()) 
      { 
       int count = 0; 
       do 
       { 
        byte[] buf = new byte[10240]; 
        count = stream.Read(buf, 0, 10240); 
        Response.OutputStream.Write(buf, 0, count); 
        Response.Flush(); 
       } while (stream.CanRead && count > 0); 
      } 
을 다음과 같다이이

Result of the code below

내 코드를 C# 코드 같다고 할 때

서버 측 코드가 ms 워드와 같은 기본 응용 프로그램을 사용하여 클라이언트 컴퓨터에서 파일을 열 수 없으므로 브라우저 창에 doc/xls/ppt 파일을 표시하지 않을 수 있습니다. 코드에서와 같이 출력 스트림에 파일을 쓸 수 있습니까?

답변

0

두 개의 다른 Response : myResp를 가져 와서 resp로 출력 해보십시오. 아래를 참조 이 당신은 Microsoft에서 View Office documents online 서비스를 사용하려고 할 수 있습니다 2010 년

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(FilePath); 
using (HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse()) { 
    using (Stream stream = myResp.GetResponseStream()) { 
    HttpResponse resp = HttpContext.Current.Response; 
    resp.Clear(); 
    resp.ContentType = "Application/msword"; 
    resp.AddHeader("Content-Disposition", "attachment; filename=xyz.doc"); 
    int count = 0; 
       do 
       { 
        byte[] buf = new byte[10240]; 
        count = stream.Read(buf, 0, 10240); 
        resp.OutputStream.Write(buf, 0, count); 
        resp.Flush(); 
       } while (stream.CanRead && count > 0); 
    } 
} 
0

VS 내 컴퓨터 dev에와 자극에 작동합니다.