Я начну говорить, что я новичок на asp.net, и я ожидаю, что вы сильно поджарите меня здесь ...
Когда я загружаю файл в свой браузер, используя asp.net, он загружает файл с правильными данными, но с именем и окончанием страницы (в данном случае - StoragePage.aspx). хотя я хотел, чтобы он загружался как тип файла, который находится в базе данных, с именем, которое он хранит в базе данных.
Я сделал это с помощью этого видео: https://www.youtube.com/watch?v=x221CNS0ly0, и, как видно в конце видео, это происходит и с производителем видео.
I RECOMMEND WATCHING THE END OF THE VIDEO BEFORE ANSWERING!
Вот код, который я использовал для загрузки
DataTable dt = new DataTable();
using (SqlConnection cn = new SqlConnection(gone))
{
SqlCommand cmd = new SqlCommand("getDocument", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = id;
cn.Open();
SqlDataReader reader = cmd.ExecuteReader();
dt.Load(reader);
}
string name = dt.Rows[0]["File_Name"].ToString();
byte[] documentBytes = (byte[])dt.Rows[0]["File_Content"];
Response.ClearContent();
Response.ContentType = "application/octetstream";
Response.AddHeader("content-Disposition", string.Format("attachment; File_Name=" + name));
Response.AddHeader("content-Length", documentBytes.Length.ToString());
Response.BinaryWrite(documentBytes);
Response.Flush();
Response.Close();
Я ожидал, что он будет загружен как имя файла из-за этой строки:
Response.AddHeader("content-Disposition", string.Format("attachment; File_Name=" + name));