无法打开下载保存对话框

2024-04-12

使用下面的代码我无法显示打开/另存为文件对话框:

        public void ProcessRequest(HttpContext context)
        {
            string link = context.Request.QueryString["Link"];
            string extension = Path.GetExtension(link);
            string fileName = Path.GetFileName(link);
            string fullPath = 
                 String.Format("{0}\\{1}",
                     context.Server.MapPath("~/Content/Uploads/"), 
                     fileName);

            if (File.Exists(fullPath))
            {
                context.Response.ClearContent();
                context.Response.ClearHeaders();
                context.Response.AddHeader(
                    "Content-Length", 
                    new FileInfo(fullPath).Length.ToString());
                string contentType;
                switch (extension)
                {
                    default:
                        contentType = "application/octet-stream";
                        break;
                }
                context.Response.ContentType = contentType;
                context.Response.AddHeader(
                    "Content-Disposition", 
                    String.Format("attachment; filename={0}", fileName));
                context.Response.WriteFile(fullPath, true);
                context.Response.Flush();       
            }
        }

我尝试关闭响应,将响应保持打开状态,使用TrasmitFile(),但我从未得到任何对话或任何反馈。我也尝试过调试它,但没有抛出异常。在 IE 7/8 和 Chrome 中尝试过。任何帮助表示赞赏。

Thanks!

下面是 Fiddler 的输出:

HTTP/1.1 200 OK 缓存控制:私有 内容长度:3813 内容类型: 应用程序/八位字节流服务器: Microsoft-IIS/7.5 内容处置: 依恋; 文件名=b1af9b34-28cc-4479-a056-8c55b41a5ece.txt X-AspNet-版本:4.0.30319 X-Powered-By:ASP.NET 日期:23 日,星期四 2010 年 12 月 21:51:58 GMT

* Home
* Hotels
* Reviews
* Community
* Travel Guide
* Travel Insurance
* Contact us

* FIDDLER:RawDisplay 被截断为 128 个字符。右键单击以禁用 截断。 *


终于想通了。其实我贴的代码没有问题。正如您在 Fiddler 输出中看到的,文本文件的内容已成功写入响应流,并且使用的标头也正确。实际的问题来自于实际的http请求是如何发出的。我用了一个

$.get(urlToGenericHandler);

使用 jQuery 请求。具体来说,我无法使用 AJAX 或回调模型下载文件的原因超出了本答案的范围。查看支持的 jQuery 数据类型here http://api.jquery.com/jQuery.ajax/

不管怎样,我将调用从使用 AJAX 更改为使用基本的回发。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法打开下载保存对话框 的相关文章

  • try-catch 中未处理的异常

    try list from XElement e in d Descendants wix File where e Attribute Name Value Contains temp Name e Parent Parent Attri
  • 在 Xcode4 中使用 Boost

    有人设置 C Xcode4 项目来使用 Boost 吗 对于一个简单的 C 控制台应用程序 我需要在 Xcode 中设置哪些设置 Thanks 用这个来管理它 和这个
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 如何用 kevent() 替换 select() 以获得更高的性能?

    来自Kqueue 维基百科页面 http en wikipedia org wiki Kqueue Kqueue 在内核和用户空间之间提供高效的输入和输出事件管道 因此 可以修改事件过滤器以及接收待处理事件 同时每次主事件循环迭代仅使用对
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 如何打开弹出窗口并用父窗口中的数据填充它?

    如何使用 JavaScript jQuery 使用父页面中 JS 变量的数据填充弹出窗口 在我的示例中 我有一个文件名数组 我在父窗口中最多列出五个 如果还有更多 我想提供一个链接来打开弹出窗口并列出数组中的每个帖子 因此 如果我打开一个包
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 通过不同 DLL 或 EXE 中的指针或引用访问 STL 对象时发生访问冲突

    我在使用旧版 VC6 时遇到以下问题 我只是无法切换到现代编译器 因为我正在处理遗留代码库 http support microsoft com kb 172396 http support microsoft com kb 172396
  • 如何限制下拉列表更改而不禁用它

    如何在不禁用下拉列表的情况下限制下拉列表选项更改 意味着我无法更改选项 并且下拉列表不应该是只读的 我的问题是我的服务器没有读取禁用的元素 这是我的出价 http jsfiddle net m3v7y jQuery var lastSel
  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • C# 搜索目录中包含字符串的所有文件,然后返回该字符串

    使用用户在文本框中输入的内容 我想搜索目录中的哪个文件包含该文本 然后我想解析出信息 但我似乎找不到该字符串或至少返回信息 任何帮助将不胜感激 我当前的代码 private void btnSearchSerial Click object
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • Silverlight Datagrid:在对列进行排序时突出显示整个列

    我的 Silverlight 应用程序中有一个 DataGrid 我想在对该列进行排序时突出显示整个列 它在概念上与上一个问题类似 Silverlight DataGrid 突出显示整列 https stackoverflow com qu
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • 我应该在应用程序退出之前运行 Dispose 吗?

    我应该在应用程序退出之前运行 Dispose 吗 例如 我创建了许多对象 其中一些对象具有事件订阅 var myObject new MyClass myObject OnEvent OnEventHandle 例如 在我的工作中 我应该使
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12

随机推荐

  • 如何使用dynamoose查询本地dynamoDB?

    作为一名开发人员 我不想一直连接到 Amazon Web 服务 我在本地计算机上安装了 DynamoDB 引用了AWS Docs https docs aws amazon com amazondynamodb latest develop
  • 使用 array.filter 进行多级过滤

    我有一个过滤功能 它使用filter快速搜索数组中的文本 filtered filtered filter row gt return Object keys row some key gt return String row key to
  • 将 crontab 文件替换为 -e

    有人知道如何将文件放入 crontab e 吗 我无法使用 crontab 的常规形式为其提供路径 但仍需要替换整个内容 也许将 EDITOR 设置为某些内容 您可以使用以下命令将 cron 作业从文件中获取到 crontab 中 cron
  • 包含 Angular 2+ 日期管道格式的文本

    我正在尝试使用DatePipe在 Angular 2 中 我希望输出日期的格式为 08 23 2017 at 11 07 AM 但是 我无法找出包含文本的正确方法at以我的日期格式 当我这样指定格式时 my date date MM dd
  • CGO_ENABLED 如何影响动态链接和静态链接?

    我们正在编译要在 docker 上运行的 Go 代码 并且正在调查为什么我们的二进制文件没有执行 我们发现它缺少一些动态库 尽管我们想要静态链接的二进制文件 这就是它的编译方式 env GOOS linux CGO ENABLED 1 GO
  • Mongodb 文本搜索多个字段

    我有一个 mongodb 文档 如下所示 document title suburb id date 我想添加一个搜索功能 人们可以通过郊区和标题搜索文档 我正在使用文本搜索功能 我想要这样的东西 var search and search
  • 如何在多台机器之间共享 zsh 历史记录?

    我对在机器之间共享配置文件感到非常满意 但我发现我经常想在 zsh Ctrl R 中搜索 但我不记得在哪台机器上输入了命令 理想情况下 我希望它可以从我的任何机器中搜索先前命令的规范重复数据删除列表 鉴于我有时会在没有网络连接的情况下同时在
  • 绕过 OPENQUERY 的字符限制失败使用 EXECUTE

    我目前正在使用 SQL Server Management Studio 17 连接到 Oracle 数据库实例 然后提取一些数据并将其插入到我拥有的 SQL Server 表中 我尝试过执行以下操作 DROP TABLE IF EXIST
  • 如何从magento前端上传产品图片

    我正在尝试在管理面板中上传产品的图片 它工作正常 但现在我想在前端上传产品的图像 我的意思是客户可以从前端上传产品的图像 那么这怎么可能呢 首先在媒体 导入中上传图像 if isset FILES file name FILES file
  • 仅子级的 CSS 选择器,包括文本

    我需要选择 b 标签 但前提是这是 a 中唯一的内容 p 例如 选择 b 中 p p b hello b p 但不在 p b hello b world p 这可能吗 only child不这样做 CSS 选择器对文本节点一无所知 因此 对
  • 如何从命令行运行Matlab?

    是否可以从 Mac 命令行运行 Matlab 命令 The matlab脚本位于binMATLAB 应用程序包的子目录 在我的机器上 这意味着我可以像这样运行它 Applications MATLAB R2012a Student app
  • 来自存储桶的 AWS s3 V3 Javascript SDK 流文件 (GetObjectCommand)

    我查看了所有 AWS 码头和堆栈溢出 甚至去了谷歌的第 4 页 但我一生都无法弄清楚如何从 S3 流式传输文件 V3 的文档非常无用 我找到的所有示例都来自 V2 V3 使用的发送公共仅返回一个承诺 那么我如何获取流并通过管道传输它而不是等
  • 单击编辑文本时推送内容

    我到处寻找解决我的问题的方法 但找不到答案 问题就在这里 我有一个看起来像这样的布局 现在 当我单击编辑文本 搜索栏 时 我希望发生以下情况 软键盘基本上需要将整个屏幕的内容上推 使搜索栏位于顶部 列表视图位于其下方 以便在搜索内容时显示结
  • 为什么 css 变量会覆盖另一个文件的 css 变量?

    当我在各种 CSS 文件中定义变量并将这些文件包含在 HTML 文件中时 它会覆盖以前的变量 为什么会发生这种情况 假设我有 测试1 css root size of font 5rem logo font size var size of
  • 如何获取 HTML 元素节点的实际 CSS 属性值? [复制]

    这个问题在这里已经有答案了 据我了解获取计算样式 https developer mozilla org en US docs Web API Window getComputedStyle方法 它应该返回一个对象 允许访问 HTML 元素
  • 单击时删除点边框

    我正在使用此 CSS 来删除单击超链接时出现的虚线边框 a active a focus input outline 0 outline style none outline width 0 这工作正常 但不适用于具有背景图像的输入按钮 我
  • 接口、静态类问题

    我目前正在将所有游戏代码移动到另一个包中 以便在创建另一个类似游戏时可以简单地重用它 不过我在这方面遇到了一些问题 public interface Sprite abstract class AbstractSprite implemen
  • 有什么方法可以在 Jenkins 中获取 Gitlab 管道工件吗?

    我在gitlab中有一个项目 该项目会在存储库中的每次签入时构建 并在 gitlab 管道成功时创建构建工件 我想在我的詹金斯管道工作中获得这些构建工件 有什么办法可以做到这一点吗 我在 Jenkins 中找不到任何插件来执行此操作 任何帮
  • setInterval 不起作用(Javascript)

    我正在尝试使用 JavaScript 中的 setInterval 定期重绘画布 但是 当我调用 setInterval 函数时 我传递给它的函数只运行一次 这是我的代码的简化版本
  • 无法打开下载保存对话框

    使用下面的代码我无法显示打开 另存为文件对话框 public void ProcessRequest HttpContext context string link context Request QueryString Link stri