我正在开发一个按钮来下载excel工作表中的特定报告我使用Microsoft.Office.Interop.Excel命名空间,一切正常,但我的问题是如何强制要求保存为或打开文件像任何其他文件下载?现在我的excel工作簿会自动下载到Documents,这样客户端就不会知道该文件已经下载了。任何帮助都非常感谢
答案 0 :(得分:1)
这是http://weblog.west-wind.com/posts/2007/May/21/Downloading-a-File-with-a-Save-As-Dialog-in-ASPNET上可用的信息的一部分,可以帮助您解决问题:
如果要在链接时自动强制“另存为”对话框 通过服务器端的代码单击,您必须将文件发回 通过代码使用Response.TransmitFile(),Response.BinaryWrite()或 将其流式传输到Response.OutputStream并添加几个自定义 输出的标题。
执行此操作的最佳方法是使用Response.TransmitFile() 显式从ASP.NET应用程序发送文件,然后添加 内容类型和内容处置标头。请注意 最新版本的IIS中的Response.TransmitFile()只能提供文件 超出Web站点或虚拟的虚拟文件夹层次结构。对于 您必须流入的虚拟路径之外的文件 的OutputStream()。
假设您的文件确实存在于文件夹层次结构内部,那么就是这样的 您可以强制使用TransmitFile()发送输出的另存为对话框:
Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition", "attachment; filename=SailBig.jpg");
Response.TransmitFile(Server.MapPath("~/images/sailbig.jpg"));
Response.End();
这将导致打开/另存为对话框弹出 SailBig.jpg的文件名作为默认文件名预设。
对文章原作者的文字的归属。
答案 1 :(得分:1)
您可以使用内容处置标题
来实现此目的在示例中添加以下代码行
Response.AppendHeader("content-disposition","attachment; filename=" + name);
首先检查文件的扩展名并将其保存在变量" 名称"然后使用它,如上面的代码所示。