2017-12-21 4 views
-1

Ich entwickle ein Studenteninformationssystem.Ich lege die PDF-Datei in die Datenbank als Binärdatei für jeden Kurs.Ich möchte, dass Benutzer diese Datei herunterladen.Downloadloading-Datei, aber nicht angezeigt. Wo mache ich mich falsch.Wie binäre Daten in PDF-Datei 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 
    } 

Ansicht

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

hat zu der Client installiert pdf? Hat IIS den richtigen Mime-Typ deklariert? – bilpor

+0

pdf installiert.Wie MIME-Typ zu deklarieren.Ich bin neu bei MVC.Ich habe keine volle Kontrolle über einige Themen –

+0

Sie müssen die IIS-Management-Konsole öffnen, dann sollten Sie eine Option für MIME-Typen sehen. für die Erweiterung geben Sie 'pdf' ein und für den MIME-Typ geben Sie' application/pdf' ein, das dem IIS mitteilt, wie mit diesen Dokumenten umzugehen ist. Um ehrlich zu sein, sollte das PDF da sein, wie es so üblich ist, aber manchmal wird jemand es entfernen und nicht verstehen, wofür es sich lohnt. – bilpor

Antwort

0

löste ich das Problem, wie this.We das Thema schließen kann

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"); 

    }