2017-12-21 5 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がインストールされてしまったthis.Weのような問題が主題

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

    } 
関連する問題