Retrive pfd из базы данных в ASP.NET использование C#
using Common; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; namespace BootStrap.fa { /// <summary> /// Summary description for ProductCatalogHandler /// public class ProductCatalogHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { int productId; if (int.TryParse(context.Request.QueryString["ci"], out productId)) { try { using (var db = new Data.ModelContainer1()) { var catalog = db.Catalogs.Where(c => c.Product != null && c.Product.Id == productId).FirstOrDefault(); if (catalog == null || catalog.CatalogFile == null) { var returnUrl = context.Request.QueryString["ReturnURL2"]; context.Response.Redirect(returnUrl); return; } else { var content = (catalog.CatalogFileExt != null) ? catalog.CatalogFileExt : "application/pdf"; var filename = (catalog.CatalogFileName != null) ? catalog.CatalogFileName : "Catalog.pdf"; filename = filename.Replace(" ", ""); context.Response.Buffer = true; context.Response.Charset = ""; context.Response.Clear(); context.Response.Cache.SetCacheability(HttpCacheability.NoCache); context.Response.AddHeader("Content-Length", catalog.CatalogFile.Length.ToString()); context.Response.AddHeader("Content-Disposition", "attachment; filename=" + filename); MemoryStream memory = new MemoryStream(catalog.CatalogFile); context.Response.OutputStream.Write(memory.ToArray(), 0, memory.ToArray().Length); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.Close(); HttpContext.Current.ApplicationInstance.CompleteRequest(); } } } catch { } } } public bool IsReusable { get { return false; } } } }
Что я уже пробовал:
Когда я загружаю (открываю) pdf непосредственно в Chrome или Firefox, браузер показывает недопустимый код, а в адресной строке-загруженный файл с расширениями "htm".
Пожалуйста, помогите мне.
Спасибо