Я получаю файл из базы данных в формате byte [] и хочу, чтобы пользователь увидел диалог загрузки, прежде чем Linq возьмет его из базы данных. Это в C # и ASP.NET.
Теперь это так:
- Пользователь выбирает файл, нажимает на него.
- В коде я получаю идентификатор кликаемого файла и использую Linq, который я скачиваю.
- Затем я отправляю файл по Response.OutputStream.Write (content, 0,
content.Length);
- Перед загрузкой файла из базы данных пользователь не увидит
диалог загрузки.
Что я могу сделать, если я хочу, чтобы пользователи видели диалог загрузки перед загрузкой файла?
Код:
Получение файла по id:
public static byte[] getFile(Guid id)
{
var linqFile = from file in MyDB.Files
where file.IdPliku.Equals(id)
select new
{
Content = file.Content
};
return linqFile.ToList().FirstOrDefault().Content.ToArray();
}
Сохранение файла:
public void SaveFile(Guid fileID, string filename, string mimeTypes)
{
try
{
byte[] content = FileService.getFile(fileID);
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = mimeTypes;
Response.AppendHeader("Accept-Ranges", "bytes");
Response.AppendHeader("Content-Range", string.Format("0-{0}/{1}", content.Length, content.Length));
Response.AppendHeader("Content-Length", content.Length.ToString());
Response.AppendHeader("Content-Encoding", "utf-8");
Response.AppendHeader("Content-Type", Response.ContentType);
Response.AppendHeader("Content-Disposition", "attachment; filename= " + HttpUtility.UrlEncode(filename));
Response.OutputStream.Write(content, 0, content.Length);
//Response.BinaryWrite(content);
Response.Flush();
}
finally
{
Response.Close();
}
}
Ты моя надежда.