我使用下面的代码下载word / excel文件。如何在下载后自动打开此文件?
private void DownloadFile(byte[] bArray, string mimeType, string KeyPath, bool bForcedownload)
{
Response.ContentType = mimeType;
if (bForcedownload)
Response.AppendHeader("Content-disposition",
"attachment; filename=" + Path.GetFileName(KeyPath));
Response.AppendHeader("content-length", bArray.Length.ToString());
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.AppendHeader(@"Pragma", @"no-cache");
Response.BinaryWrite(bArray);
FlushSupressReponse();
}
private void FlushSupressReponse()
{
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.SuppressContent = true;
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
你的评论:
我们有在浏览器上运行的UI,用户点击文件名和文件下载...但是用户需要点击文件才能打开它,但我想在下载后自动打开它。
你不能。这完全是用户的选择。下载后,您无法强制网站用户自动打开文件。
这是故意的,因为以这种方式分发病毒非常容易。
但是,您可以向用户说明如何配置其浏览器以自动打开某些类型的文件。例如,在Chrome中,下载文件后,文件名旁边会出现一个箭头。单击该按钮,可以选择“自动打开此类型的文件”。
但这仍然取决于您的用户。