问题标签 [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.
c# - C# 文件下载返回损坏的文件 - TransmitFile
在我们的服务器上,我们使用虚拟目录在同一域下托管 10 多个网站。现在,其中的文件下载功能在除 2 之外的所有网站上都可以使用。我已经使用以下功能检查了所有内容,但仍然无法正常工作。
请注意,我还尝试为 Content-Length 设置代码,清除响应缓存但没有任何效果。事实上,我也比较了工作和非工作网站页面的请求头,但它们也是相同的。请注意,当我在 ashx 页面中使用相同的代码时,文件下载有效!我 99.99% 确信这一定是编码以外的问题,因为我没有发现其他网站有任何问题。
如果有人可以专注于此,将不胜感激!否则我将别无选择应用替代解决方案。
提前致谢
asp.net - 文件名包含空格的 TransmitFile
在 C# ASP.Net 网站中,将文件传输到我正在使用的客户端
它工作得很好,但是当文件名包含任何空格时,下载的文件的名称只能到第一个单词。例如:如果我的文件名是,"This is demo.txt"
那么下载的文件名将变为"This"
没有扩展名。因此,下载它的用户无法识别其类型。
对于包含空格的文件名,我们如何避免发生这种情况?
我尝试使用
但它没有用。
我也无法替换(用'_'或'-')或删除服务器上存在的文件名中存在的所有空格。
c# - 在新窗口中打开 jpg/pdf
当我尝试使用下面的代码在新窗口中打开文件时,它正在下载文档而不是在新窗口中打开。当我打开下载的文档时,它看起来不错。
But I want the document to be open in new window
. 谢谢你的帮助。
WebForm2Test.aspx
WebForm1Test.aspx.cs
ajax - 为什么从 ASP.NET 下载时文件不同(使用 Blob 进行 AJAX 下载)
使用 MVC 4.0,我使用以下代码从 ajax 源(使用最新的 firefox)从服务器创建下载文件:
如果输出涉及的是文本文件(例如 csv 或 txt 文件),这可以正常工作,但是,当涉及到 zip 或 xlsx 等文件时,下载的文件似乎与原始源不同(即在服务器中生成的 zip 为 15K ,但下载的是26K)
我已经挣扎了几天,请问是否有人应该解释一下为什么它适用于 csv/text 文件,但不适用于 zip 或 xlsx 文件?
非常感谢
控制器:
JavaScript:
c# - Response.TransmitFile() 无法传输空文件
我正在 GridView 中实现一个列,以允许用户在单击文件名时下载文件(文件存储在我的项目的 Uploads 文件夹中)。
当文件中有一些数据时,代码工作正常,即用户可以单击文件并且它会被下载,但是当用户单击一个空文件(如空的 .docx 文件)时,会显示一个空白页面而不是下载文件。
这是代码:
我已经在 Chrome、Mozilla 和 IExplorer 上进行了测试。
c# - 从 asp.net core 高效发送文件
我有兴趣将一些代码移植到 ASP.NET Core,并想知道从 ASP.NET Core Web 服务发送文件(也称为“下载”文件)的最有效方式。
使用我的旧 ASP.NET 代码,我使用的是 FileStream:
但是,我试图找到 FreeBSD 的 sendfile() 的 .NET 等效项并找到HttpResponse.TransmitFile。我认为这会更快?
我还担心该文件必须在访问用户之前从 Kestrel 到 IIS 进行额外的跳跃。有什么建议吗?
asp.net - 在.Net中从服务器传输压缩文件
我正在编写一个小型 Web 应用程序,部分功能是能够将日志从服务器下载到用户的文件系统。我能够压缩现有日志,但无法让压缩文件夹传输。我在这里浏览了许多其他类似的问题,但还没有根据其中任何一个问题来解决这个问题。
这是我目前正在尝试的代码:
.Net 控制器
Javascript
每当我运行它时,它都会将日志压缩到一个文件夹中,Response
成功地逐步完成部分代码,但没有任何反应。我已经尝试调试并单步执行代码,但还没有找到答案。我也试过这个Response.WriteFile
方法。没运气。
编辑
我已经更新了要返回的代码ActionResult
并返回了一个File
. 它当前从服务器返回 500 错误。
c# - Mac 上的 .net 文件下载仅附加 .JPEG
我有一个允许上传和下载文件的旧版应用程序。这些文件以 SQL 数据库中的文件名存储在磁盘上。为了允许用户重复文件名,数据库存储用户原始文件名和唯一名称。这些文件显示在 .NET 转发器中,命令参数提供两个文件名(原始的和唯一的)。下载文件后,下面的代码使用原始名称将文件提供给用户。
在带有 Chrome、IE、FFox 的 PC 上一切正常。对于 Mac 用户,当他们应该只获得 FileName.ext 时,他们会获得 FileName.ext.jpeg
我不是很精通Mac的东西。我可以对 ContentType 或 Content-Dispositon 做些什么来为少数 Mac 用户解决这个问题,而不影响我庞大的 PC 用户群?
这是使用原始名称重命名存储在服务器上的文件的代码:
c# - 为什么 Response.TransmitFile 不在我的 WCF 服务中返回我的文件?
如果您能解释一下为什么 TransmitFile 不起作用,代码很简单,我创建 excel 文件 ( .xlsx
),将其保存在服务器上并返回文件路径(通过 CreateProjectsReport),然后我只想获取文件并将其传输给用户。 ...
此代码的结果是文件保存在我的服务器上的预期文件夹中(完整报告在那里,我验证了由方法生成的 excel 文件)并且response.Flush()
我看到文件正在浏览器上传输,内容长度30kb
为文件长度在服务器上,但是一旦我点击保存并且文件保存在我的下载文件夹中,它的长度是10kb
,用excel打开它我得到错误:Excel foudn unreadable content in 'filename.xlsx'. Do you want to recover ....
。
检查 IIS MIME 类型,它已设置(我尝试将两者都用于内容类型,得到相同的错误):
.xls -application/vnd.ms-excel
.xlsx -application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
context.Response.TransmitFile 是否抑制我的文件并且不发送它的全部内容?为什么会这样?
编辑
通过浏览器控制台,我可以看到 inResponse.Header
属性content-length
是文件的确切长度,但是一旦我单击Save
文件,该文件大小从 1kb 到 15kb 顶部,而不是服务器上的 30kb(就像TransmitFile(file.FullName)
不传输整个文件