问题标签 [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.

0 投票
0 回答
1512 浏览

c# - C# 文件下载返回损坏的文件 - TransmitFile

在我们的服务器上,我们使用虚拟目录在同一域下托管 10 多个网站。现在,其中的文件下载功能在除 2 之外的所有网站上都可以使用。我已经使用以下功能检查了所有内容,但仍然无法正常工作。

请注意,我还尝试为 Content-Length 设置代码,清除响应缓存但没有任何效果。事实上,我也比较了工作和非工作网站页面的请求头,但它们也是相同的。请注意,当我在 ashx 页面中使用相同的代码时,文件下载有效!我 99.99% 确信这一定是编码以外的问题,因为我没有发现其他网站有任何问题。

如果有人可以专注于此,将不胜感激!否则我将别无选择应用替代解决方案。

提前致谢

0 投票
1 回答
3253 浏览

asp.net - 文件名包含空格的 TransmitFile

在 C# ASP.Net 网站中,将文件传输到我正在使用的客户端

它工作得很好,但是当文件名包含任何空格时,下载的文件的名称只能到第一个单词。例如:如果我的文件名是,"This is demo.txt"那么下载的文件名将变为"This"没有扩展名。因此,下载它的用户无法识别其类型。
对于包含空格的文件名,我们如何避免发生这种情况?

我尝试使用

但它没有用。

我也无法替换(用'_'或'-')或删除服务器上存在的文件名中存在的所有空格。

0 投票
1 回答
1977 浏览

c# - 在新窗口中打开 jpg/pdf

当我尝试使用下面的代码在新窗口中打开文件时,它正在下载文档而不是在新窗口中打开。当我打开下载的文档时,它看起来不错。

But I want the document to be open in new window. 谢谢你的帮助。

WebForm2Test.aspx

WebForm1Test.aspx.cs

0 投票
1 回答
1443 浏览

ajax - 为什么从 ASP.NET 下载时文件不同(使用 Blob 进行 AJAX 下载)

使用 MVC 4.0,我使用以下代码从 ajax 源(使用最新的 firefox)从服务器创建下载文件:

如果输出涉及的是文本文件(例如 csv 或 txt 文件),这可以正常工作,但是,当涉及到 zip 或 xlsx 等文件时,下载的文件似乎与原始源不同(即在服务器中生成的 zip 为 15K ,但下载的是26K)

我已经挣扎了几天,请问是否有人应该解释一下为什么它适用于 csv/text 文件,但不适用于 zip 或 xlsx 文件?

非常感谢

控制器:

JavaScript:

0 投票
1 回答
562 浏览

c# - Response.TransmitFile() 无法传输空文件

我正在 GridView 中实现一个列,以允许用户在单击文件名时下载文件(文件存储在我的项目的 Uploads 文件夹中)。

当文件中有一些数据时,代码工作正常,即用户可以单击文件并且它会被下载,但是当用户单击一个空文件(如空的 .docx 文件)时,会显示一个空白页面而不是下载文件。

这是代码:

我已经在 Chrome、Mozilla 和 IExplorer 上进行了测试。

0 投票
1 回答
8928 浏览

c# - 从 asp.net core 高效发送文件

我有兴趣将一些代码移植到 ASP.NET Core,并想知道从 ASP.NET Core Web 服务发送文件(也称为“下载”文件)的最有效方式。

使用我的旧 ASP.NET 代码,我使用的是 FileStream:

但是,我试图找到 FreeBSD 的 sendfile() 的 .NET 等效项并找到HttpResponse.TransmitFile。我认为这会更快?

我还担心该文件必须在访问用户之前从 Kestrel 到 IIS 进行额外的跳跃。有什么建议吗?

0 投票
1 回答
300 浏览

c# - 单击事件时未从 GridView 下载文件

我有一个GridView名为gvEmplAttachments的 3 列:

  • ID
  • 文件名
  • 文件路径

每行都有一个LinkButton允许用户下载文件的按钮,该按钮的编码如下:

GridView 设置如下:

这样它就会执行 CodeBehind 中的函数


在我的 CodeBehind 我有这个功能:

但问题是当我单击按钮时出现此错误:

你调用的对象是空的

我的问题是,我错过了什么会导致空值。因为 Grid 显示了正确的 FileName 和 FilePath。

在此处输入图像描述

0 投票
1 回答
306 浏览

asp.net - 在.Net中从服务器传输压缩文件

我正在编写一个小型 Web 应用程序,部分功能是能够将日志从服务器下载到用户的文件系统。我能够压缩现有日志,但无法让压缩文件夹传输。我在这里浏览了许多其他类似的问题,但还没有根据其中任何一个问题来解决这个问题。

这是我目前正在尝试的代码:

.Net 控制器

Javascript

每当我运行它时,它都会将日志压缩到一个文件夹中,Response成功地逐步完成部分代码,但没有任何反应。我已经尝试调试并单步执行代码,但还没有找到答案。我也试过这个Response.WriteFile方法。没运气。

编辑 我已经更新了要返回的代码ActionResult并返回了一个File. 它当前从服务器返回 500 错误。

0 投票
1 回答
44 浏览

c# - Mac 上的 .net 文件下载仅附加 .JPEG

我有一个允许上传和下载文件的旧版应用程序。这些文件以 SQL 数据库中的文件名存储在磁盘上。为了允许用户重复文件名,数据库存储用户原始文件名和唯一名称。这些文件显示在 .NET 转发器中,命令参数提供两个文件名(原始的和唯一的)。下载文件后,下面的代码使用原始名称将文件提供给用户。

在带有 Chrome、IE、FFox 的 PC 上一切正常。对于 Mac 用户,当他们应该只获得 FileName.ext 时,他们会获得 FileName.ext.jpeg

我不是很精通Mac的东西。我可以对 ContentType 或 Content-Dispositon 做些什么来为少数 Mac 用户解决这个问题,而不影响我庞大的 PC 用户群?

这是使用原始名称重命名存储在服务器上的文件的代码:

0 投票
0 回答
390 浏览

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)不传输整个文件

例子