Отображение или загрузка документов, сохраненных в SQL Server с ASP.NET - PullRequest
1 голос
/ 09 марта 2019

У меня есть документы, сохраненные в базе данных SQL Server как varbinary(MAX).

Я пытаюсь получить документ из базы данных с кодом ниже.Проблема, с которой я сталкиваюсь, заключается в том, что независимо от того, какой браузер я использую, я не получаю никакого ответа.Никакое диалоговое окно браузера просто отображает поворотный круг.Любые предложения будут высоко оценены ..

if (e.ButtonID != "Download") 
     return;

int id = 2;
byte[] bytes;
string fileName, contentType;

string constr = ConfigurationManager.ConnectionStrings["bexsConnectionString"].ConnectionString;

using (SqlConnection con = new SqlConnection(constr))
{
    using (SqlCommand cmd = new SqlCommand())
    {
        cmd.CommandText = "select Title, WillData, MIMEType from Will_documents where Doc_id = @Id";
        cmd.Parameters.AddWithValue("@Id", id);
        cmd.Connection = con;

        con.Open();

        using (SqlDataReader sdr = cmd.ExecuteReader())
        {
            sdr.Read();
            bytes = (byte[])sdr["WillData"];
            contentType = sdr["MIMEType"].ToString();
            fileName = sdr["Title"].ToString();

            Response.Buffer = true;
            Response.Charset = "";
            Response.Clear();
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.ContentType = contentType;
            Response.BinaryWrite(bytes);
            Response.Flush();
            Response.End();
        }

        con.Close();
    }
}    

1 Ответ

0 голосов
/ 10 марта 2019

В конце концов все заработало.

Response.ClearContent();
Response.ContentType = "application/octetstream";
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", name));
Response.AddHeader("Content-Length", documentBytes.Length.ToString());
Response.BinaryWrite(documentBytes);
Response.Flush();
Response.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...