При загрузке файла в браузер клиента с использованием ASP.Net, он загружает его в виде файла .aspx с именем страницы - PullRequest
1 голос
/ 29 мая 2019

Я начну говорить, что я новичок на 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...