Я создал ссылку для скачивания. Но в загруженном файле отсутствует его тип файла (каждый раз загружается обычный файл)

#c# #hyperlink #download

#c# #гиперссылка #Скачать

Вопрос:

 protected void downloadbtn(object sender, EventArgs e)
{
    int id = int.Parse((sender as LinkButton).CommandArgument);
    byte[] bytes;
    string fileName, contentType;
    using (SqlConnection con = new SqlConnection(str))
    {
        using (SqlCommand cmd = new SqlCommand())
        {
            cmd.CommandText = "select Name, Data, Type from demons where ID=@Id";
            cmd.Parameters.AddWithValue("@ID", id);
            cmd.Connection = con;
            con.Open();
            using (SqlDataReader sdr = cmd.ExecuteReader())
            {
                sdr.Read();
                bytes = (byte[])sdr["Data"];
                contentType = sdr["Type"].ToString();
                fileName = sdr["Name"].ToString();
            }
            con.Close();
        }
    }
    Response.Clear();
    Response.Buffer = true;
    Response.Charset = "";
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.ContentType = contentType;
    Response.AppendHeader("Content-Disposition", "attachment; filename="   fileName);
    Response.BinaryWrite(bytes);
    Response.Flush();
    Response.End();
}
  

// Тип файла не отправляется вместе с файлом
// например, если необходимо загрузить фотографию, тогда будет загружен обычный файл, тогда вам нужно открыть его специально с помощью приложения paint или photos

Комментарии:

1. Что вы подразумеваете под «тип отсутствует»? Каково содержимое contentType переменной?

2. вместо этого запрашивается «сохранить как тип = Все файлы» . JPEG или .MP4 или .txt

3. Хорошо, это первый вопрос, а второй?

4. только один вопрос.

5. Я задал 2 вопроса, пожалуйста, потратьте некоторое время на чтение, если вы ожидаете, что люди помогут вам.

Ответ №1:

Я полагаю, ваша проблема в том, что то, что хранится в переменной ContentType, не является допустимым типом MIME.

Вы можете ознакомиться со списком известных типов Windows MIME здесь https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/ms775147(v=vs.85)