J'ai une base de données SQL qui stocke certains documents.C# ASP.NET 3.5 problèmes de téléchargement de fichiers de disposition de contenu
Un utilisateur peut se connecter à l'application et afficher une liste de ses documents. Lorsque vous cliquez sur un bouton de téléchargement dans une grille de leurs documents, j'obtiens le fichier de la base de données, je l'écris dans le système de fichiers, puis j'exécute ce code.
System.IO.FileInfo file = new System.IO.FileInfo(System.Configuration.ConfigurationManager.AppSettings["UploadPath"] + DocumentName);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Cookies.Clear();
Response.Cache.SetCacheability(HttpCacheability.Private);
Response.CacheControl = "private";
Response.Charset = System.Text.UTF8Encoding.UTF8.WebName;
Response.ContentEncoding = System.Text.UTF8Encoding.UTF8;
Response.AppendHeader("Content-Length", file.Length.ToString());
Response.AppendHeader("Pragma","cache");
Response.AppendHeader("Expires", "60");
Response.ContentType = GetContentType(file.Extension);
Response.AppendHeader("Content-Disposition",
"inline; " +
"filename=\"" + file.Name + "\"; " +
"size=" + file.Length.ToString() + "; " +
"creation-date=" + DateTime.Now.ToString("R") + "; " +
"modification-date=" + DateTime.Now.ToString("R") + "; " +
"read-date=" + DateTime.Now.ToString("R"));
méthode Mon getContentType() retourne juste le type de fichier approprié pour les fichiers que je suis permettant « application/pdf, application/msw0rd, etc.
Mon problème est que lorsque le fichier est enregistré, c'est la page web elle-même, pas le fichier du système de fichiers, et dans google chrome, ça met une extension .htm à la fin du nom de fichier, je suppose parce qu'il sait que c'est une page web? étape serait d'obtenir le fichier réel, et non une copie de la page Web en HTML, ils sont assis sur!
Merci.