问题标签 [response.transmitfile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - Response.TransmitFile、Response.End 和 IE 的问题
我正在开发一个 ASP.NET 应用程序,它在某一时刻使用 Response.TransmitFile 向用户发送一个文件。
它在我的开发机器上运行良好,当我将它部署到测试服务器时,它仍然可以在其中两个上运行;虽然在其中一台服务器(W2K3)中它只适用于 Firefox,但当我在 IE7 上尝试它时,我收到一个错误,如“Internet Explorer 无法在(服务器名称)上打开文件 sendfile.aspx”。
我创建了一个小的内联 aspx 页面来重现问题,这里是:
我尝试了不同的东西,我注意到如果我注释掉该Response.End
行它会再次起作用(但是根据我在网上找到的每个示例代码,AFAIK 这行应该在那里)
<html>, <head>
我注意到的另一个可能相关也可能不相关的问题是,如果我删除 the及其结束标签,它也会失败。
我已经为此苦苦思索了一段时间,有人知道如何让它工作吗?
asp.net - 当我使用 ASP.NET 流式传输文件时,为什么 IIS7 会忽略我的内容类型标头?
我有一个有两个页面的简单网站。一个显示文件列表,另一个在列表中单击文件时流式传输文件。生产 6 个月一切正常,但现在我必须将站点移至 Windows 2008/IIS7。我大部分时间都在工作,但是文件无法正确打开(在 Firefox 中),因为我的内容类型标头被忽略了。在生产站点(IIS6)上,标头是(使用 Fiddler):
但在测试 IIS7 服务器上,我得到:
Fiddler 还报告了协议违规并说“内容长度不匹配:响应标头要求 236841 字节,但服务器发送了 238378 字节。”
我的代码如下所示:
这几天我一直在尝试解决这个问题。我对 IIS7 不太熟悉,并且一直在努力寻找更改各种设置的位置。我确实设法弄清楚了这两种托管管道模式,并通过切换到经典 .NET AppPool 修复了一些其他问题(集成在传输文件时抛出了各种错误)。
有没有办法告诉 IIS7 不要覆盖我的 ContentType 标头,如果这是发生的事情?
c# - Response.TransmitFile 并在传输后将其删除
我必须在我的站点中实现 GEDCOM 导出。
单击导出到 gedcom 时,我的 .net 代码在服务器上创建了一个文件。
然后我需要将它从服务器下载到客户端,并且应该询问用户将该文件保存在哪里,这意味着需要 savedialog。
下载后,我想从服务器中删除该文件。
我有一个代码将文件从服务器传输到客户端:
从这个链接
但我无法在此代码Response.End
结束响应后删除文件,因此在该行之后编写的任何代码都不会执行。
如果我之前执行删除文件的代码Response.End();
,则文件不会传输并且我收到错误消息。
c# - 将 Response.TransmitFile 用于物理文件不起作用
我正在尝试使用 Response.TransmitFile() 来提示下载。我已经阅读了许多关于这个问题的帖子,并基于 Rick Strahl 的博客 http://www.west-wind.com/weblog/posts/76293.aspx我的方法
唯一的区别(我可以说)是我的目标是虚拟目录之外的物理文件。此代码在 ajaxified radgrid 中调用...我想知道 response.transmitfile 是否不适用于 ajax 调用?这是我的代码片段:
看到系统知道文件存在...它通过 Response.End() 没有错误...然后继续正确地应用程序...除了没有下载提示。
ReturnExtension 方法是从另一个站点提取的(抱歉我不记得在哪里!)如下
c# - 如何从 C# 代码传输 zip 文件
我正在使用 c#.net 应用程序,我需要在其中使用 c# codebase 下载 zip 文件。我正在使用以下代码下载文件:
zip 文件已传输,但是当我在下载后尝试打开 zip 文件时,我收到一条错误消息“无法打开文件:文件看起来不是有效的存档”
请让我知道我在哪里做错了,以及如何获取一个 zip 文件并在没有任何错误的情况下提取它。
提前致谢
asp.net - Response.TransmitFile() 使用 ASP.NET 开发服务器抛出“对路径 {path} 的访问被拒绝”
我正在尝试使用 Response.TransmitFile() 发送受保护的 PDF 文件(无法直接通过浏览器访问),但我得到“访问路径......被拒绝”。我正在使用 ASP.NET 开发服务器,所以我不确切知道哪个是正在使用的用户帐户。无论如何,我已经为所有人设置了完全控制,但仍然没有运气。
这可能是什么原因造成的?也许甚至与权限无关......
我正在使用的代码如下,我不确定它是否可以。
c# - Response.TransmitFile 没有下载,也没有抛出错误
我目前正在使用 HttpResponse 从我的服务器下载文件。我已经有几个函数用于下载 Excel/Word 文件,但我无法下载我的简单文本文件 (.txt)。
对于文本文件,我基本上是将 TextBox 的内容转储到文件中,尝试使用 HttpResponse 下载文件,然后删除临时文本文件。
这是适用于 Excel/Word 文档的代码示例:
这是不起作用的代码块。
请注意,代码运行时不会引发任何错误。文件已创建并删除,但从未转储给用户。
asp.net - 在 ActionResult 中将请求传回 IIS
我很确定答案是“你不能这样做”,但如果是这样,那么 ASP.NET MVC 就存在严重缺陷。
我有一个 ActionResult 需要提供静态文件(文件名在代码中确定)。出于性能原因(并且因为我不想为接受字节和缓存标头重新实现 HTTP 规范),我想将请求交给 IIS。就像 HttpModule 中的 context.RewritePath() 一样,当你给它一个静态文件的名称时。
除非这需要在 ActionResult 中发生,而不是在 PostAuthorizeRequest 期间。
查看 FileStreamResult 和 FilePathResult 类,很明显它们只实现了 HTTP 200。TransmitFile() 很好,但它不是内核缓存,它不处理 Accept-bytes、If-Modified-Since 或 Etags .
我们几乎被告知 IIS 在服务文件方面有多好,集成管道有多重要,IIS6 上的邪恶通配符映射对性能有多重要,等等。
现在我们又回到了同一条船上——没有办法让 IIS 从 ActionResult 中提供静态文件。(不,TransmitFile 不算在内)。
我什至已经开始看到 MS 建议您将静态内容放在单独的服务器上。
请告诉我我错了,有一种神奇的方法可以做到这一点。还是集成的白日梦被MVC杀死了?
c# - IE 和 word 中的 TransmitFile 安全问题
我正在尝试将文件(word 文档)从我的服务器传输到客户端
我正在使用这个:
在 IE 中,当我单击下载弹出窗口的打开时,一切正常,并且打开了我的文档。
问题是当我单击 word 中的保存按钮时,它会弹出一个安全/连接弹出窗口。我必须为 mysite.com 提供用户名/密码
c# - Repsonse.Transmitfile(); 可以保存但不能打开
我正在尝试使用发送 xlsx 文件
弹出IE对话框,我可以成功保存文件,然后从文件夹中打开它,效果很好。但是如果我在 IE 对话框中单击“打开”,我会得到“无法下载 myFile.xlsx”。我单击“重试”,它会打开 Excel,但会弹出“Excel 无法打开文件 'myFile.xlsx',因为文件格式或文件扩展名无效......”错误。
我目前正在以调试模式从 VS2010 运行该站点。
有谁知道为什么它会让我保存,但不能直接打开?
编辑
Chrome 只是下载它。FF尝试打开它,但给出了错误The file you are trying to open, 'myFile.xlsx.xls', is in a different format than specified by the file extension...
我可以选择打开它并且它成功打开,但在只读模式下。
所以,这里正在发生一些时髦的事情。
文件名 = "我的文件.xlsx"
编辑 2
这是在 IE 9 中。我也尝试过octet-stream
并application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
作为 ContentType。