2017-12-21 4 views
-1

나는 학생 정보 시스템을 개발합니다. 각 과정에 대한 이진 파일로 데이터베이스에 PDF 파일을 삽입합니다. 사용자가이 파일을 다운로드하고 싶습니다. 파일을 다운로드하지만 표시하지 않습니다. 나는 어디에서 잘못하고있는가.데이터를 PDF 파일로 이진하는 방법 ASP.NET MVC

MvcCode

public FileResult FileDownload(Ders not) 
    { 
     byte[] byteArray = GetPdfFromDB(not.DersId); 
     MemoryStream pdfStream = new MemoryStream(); 
     pdfStream.Write(byteArray, 0, byteArray.Length); 
     pdfStream.Position = 0; 
     //return new FileStreamResult(pdfStream, "application/pdf"); 
     return File(pdfStream, "application/pdf", "DersNot.pdf"); 

    } 

    private byte[] GetPdfFromDB(int id) 
    { 
     #region 
     byte[] bytes = { }; 
     using (SqlConnection con = new SqlConnection(@"Server=****;Database=***;UID=***;PWD=***")) 
     { 
      con.Open(); 
      using (SqlCommand cmd = new SqlCommand()) 
      { 
       cmd.CommandText = "SELECT DersNotIcerik FROM Ders WHERE [email protected]"; 
       cmd.Parameters.AddWithValue("@Id", id); 
       cmd.Connection = con; 

       using (SqlDataReader sdr = cmd.ExecuteReader()) 
       { 
        if (sdr.HasRows == true) 
        { 
         sdr.Read(); 
         bytes = (byte[])sdr["DersNotIcerik"]; 
        } 
       } 
       con.Close(); 
      } 
     } 

     return bytes; 
     #endregion 
    } 

보기

@Html.ActionLink(item2.DersNotAd, "FileDownload", new { id = item2.DersId }) 
+0

을 닫을 수 있습니다 해결? IIS에 올바른 MIME 형식이 선언되어 있습니까? – bilpor

+0

pdf가 설치되었습니다. MIME 형식을 선언하는 방법. MVC를 처음 사용합니다. 일부 주제를 완전히 제어 할 수 없습니다. –

+0

IIS 관리 콘솔을 열어야 mime 유형에 대한 옵션이 표시됩니다. 당신이'pdf'에 넣은 확장과 mime 타입에 대해'application/pdf'를 입력하면 IIS에 이러한 유형의 문서를 처리하는 방법을 알려줍니다. 솔직히 말해서 pdf는 너무 일반적이기 때문에 거기에 있어야합니다. 그러나 때로는 누군가가 먼저 체크 아웃 할 가치가있는 것을 이해하지 못하게 제거 할 것입니다. – bilpor

답변

0

나는 클라이언트가 PDF가 설치되어있어있다 이거 한 같은 문제가 될 수

public FileResult FileDownload(int id) 
     { 

     SqlConnection con = new SqlConnection(@"Server=10UR\MSSQLSERVERR;Database=UniversiteDB;UID=onur;PWD=1234"); 

     con.Open(); 
     SqlCommand cmd = con.CreateCommand(); 
     cmd.CommandText = "SELECT DersNotIcerik FROM Ders WHERE [email protected]"; 
     cmd.Parameters.AddWithValue("@Id", id); 
     byte[] binaryData = (byte[])cmd.ExecuteScalar(); 
     return File(binaryData, "application/octet-stream", "DersNot.pdf"); 

    } 
관련 문제