2017-06-04 5 views
0

このコードで何か迷っていましたか?私がそれをテストするとき、私はファイルタイプを "File"としてPDFとして取得しません。ユーザーがデータベースからダウンロードした後にファイル形式を変更するのに手助けが必要

protected void Button1_Click(object sender, EventArgs e) 
{ 
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ConnectionString); 
    conn.Open(); 
    string pdffile = "select pdf from users where ID='" + TextBoxLic.Text + "'"; 
    SqlCommand pdfcom = new SqlCommand(pdffile, conn); 
    SqlDataReader reader = pdfcom.ExecuteReader(); 
    if (reader.Read()) 
    { 
     Byte[] pdfData = (byte[])reader.GetValue(0); 
     Response.ContentType = "Application/pdf";    
     Response.AppendHeader("content-disposition", "attachment; filename=" + TextBoxLic.Text); 
     Response.BinaryWrite(pdfData); 
     Response.End(); 
     conn.Close(); 
    } 
} 

https://i.gyazo.com/8eb75d4e55bed17155690531841d80c7.png

+2

あなたにはSQLインジェクションの脆弱性があります。 – SLaks

答えて

0

たぶん

Response.Flush(); Response.Close();

Response.BinaryWrite(pdfData);後さらに重要なことは while (reader.Read()) ではなく する必要がありますを追加してみてください3210

私はあなたがここをよく読んでお勧めしたい:https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.read(v=vs.110).aspx

+0

まだ同じファイルタイプ:( – Mute

+0

私は中にしようとしましたが、それでも何も変わっていませんでした:( – Mute

0

あなたがapplication/pdfContent-Typeヘッダーを設定する必要があります。

+0

私はしましたが、それでも何も変わっていませんでした:( – Mute

+0

MIMEタイプは大文字と小文字が区別されます – SLaks

+0

タイプファイルは変更されませんでした:( – Mute

関連する問題