#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)