我有一個存儲一些文件的sql數據庫。C#ASP.NET 3.5內容處理文件下載問題
用戶可以登錄到應用程序,並查看其文檔列表。
當在文檔的gridview中點擊鏈接按鈕下載時,我從數據庫中獲取文件,將其寫入文件系統,然後執行此代碼。
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"));
我的getContentType()方法只是返回相應的文件類型,我讓「應用程序/ PDF格式,應用/ msw0rd的文件等
我的問題是,當文件被保存,這是網頁本身,而不是文件系統中的文件,而在谷歌瀏覽器中,它將擴展名放在文件名的末尾,我猜是因爲它知道它是一個網頁?
無論如何,一步是獲得實際的文件,而不是他們坐在HTML中的網頁的副本!
謝謝。