问题标签 [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 投票
1 回答
286 浏览

c# - 获取文本文件的 mime

我正在使用一段为 C# 粘贴的代码,它使用 urlmon.dll。它读取 <= 256bytes 并根据数据返回 mime。

问题是它无法区分 css 文件和文本/纯文本。我可以转到 /style.css 但是当将它包含在我的 html 中时,CSS 不会出现。我正在使用 urlmon + context.Response.TransmitFile 发送它。

0 投票
1 回答
1366 浏览

c# - 在 Response.TransmitFile 完成时运行代码

我正在使用 Response.TransmitFile 从 Web 服务中检索文件。我想从服务器的角度来衡量这个过程所花费的时间。

我尝试在此呼叫之前和之后获取滴答计数,但这显然不代表传输花费了多长时间。对于 30 MB 的文件,它给了我像 0.0016 毫秒这样的数字。:-)

有任何想法吗?

0 投票
3 回答
7703 浏览

c# - 文件名和 mime 问题 - ASP.NET 下载文件 (C#)

我在我的 ASP.NET 应用程序中遇到了一个非常奇怪的问题。

当用户单击下载文件的按钮时,Internet Explorer / Chrome / Firefox 会显示保存对话框,但文件的名称是 ASPX 页面的名称(例如,如果页面名为 Download.aspx,则下载对话框会显示“文件”下载.zip)。有时,当使用 MIME 类型播放时,下载对话框会显示“Download.aspx”。似乎您正在尝试下载该页面,但实际上是正确的文件。

ZIP 扩展会发生这种情况,这是我的代码(我认为非常标准):

GetContentType 函数只返回文件的 MIME。我尝试使用application/x-zip-compressedmultipart/x-zip,当然还有application/zip。使用 application/zip Internet Explorer 8 显示 XML 错误。

非常感谢任何帮助。

问候,

0 投票
3 回答
3894 浏览

c# - 如何判断文件是否已下载?

我有以下代码允许用户下载文件。我需要知道(如果可能的话)他们是否成功下载了文件。是否有任何类型的回调可以让我知道他们是否成功下载了它?

0 投票
7 回答
6603 浏览

asp.net - 带有 UNC 共享的 Response.TransmitFile() (ASP.NET)

在此页面的评论中:

http://msdn.microsoft.com/en-us/library/12s31dhy%28v=VS.90%29.aspx

..它说 TransmitFile() 不能与 UNC 共享一起使用。据我所知,情况就是这样;当我尝试它时,我在事件日志中收到此错误:

建议的替代方法是使用 WriteFile(),但是,这是有问题的,因为它将文件加载到内存中。在我的应用程序中,文件大于 200MB,因此不会扩展。

ASP.NET 中是否有一种方法可以将文件流式传输给用户:

  • 可扩展(不将整个文件读入 RAM 或占用 ASP.NET 线程)
  • 与 UNC 股票合作

将网络驱动器映射为虚拟目录对我们来说不是一个选项。我也想避免将文件复制到本地 Web 服务器。

谢谢

0 投票
1 回答
4453 浏览

file - 响应传输文件

当用户单击下载链接时,我有以下代码向用户提供文件。出于安全目的,我不能直接链接到该文件,因此将其设置为解码 url 并传输文件。

它已经工作了一段时间,但最近我开始遇到文件开始下载的问题,但没有迹象表明文件有多大。

因此,当下载应该停止时,它不会。

该文件大约为 99mb,但当我下载它时,浏览器只会继续下载超过 100mb 的文件。我不知道它正在下载什么,但如果我不取消它,它就不会停止。

所以,我的问题是,是否有替代方案TransmitFile或方法来确保文件的大小也被发送,以便它在正确的时间停止?

这是代码:

我不想使用WriteFile,因为我不想将整个文件加载到内存中,因为它太大了。

谢谢。

0 投票
3 回答
3052 浏览

c++ - 为什么我对 TransmitFile 的调用与其他方法相比表现不佳?

首先,一些背景知识——我正在为一个个人项目编写一个基本的 FTP 服务器。我目前正在检索文件。我当前的实现如下所示:

它有效,但性能值得怀疑。起初,传输以大约 10 MB/s 开始,但慢慢降低到大约 3 MB/s。使用 FileZilla 服务器和 IIS FTP,它保持一致的 >30 MB/s 传输速度。因此,我知道它没有充分发挥作用。我尝试过修改缓冲区大小,但并没有提高性能。如果有人对更有效的文件传输方式有任何建议,请告诉我。API 文档似乎表明 TransmitFile 已针对我的应用程序进行了优化,这就是我选择使用它的原因。
[请原谅我缺乏 Windows API 知识。]

此外,所有套接字都在 localhost 上打开。

0 投票
2 回答
19572 浏览

c# - C# Response.WriteFile vs Response.TransmitFile 文件大小问题

我在服务器上有一个 5Mb 的 pdf 文件,使用 writeFile 下载这个文件给了我 15Mb 的下载量,而传输文件给出了正确的 5Mb 文件大小......

这是由于 writeFile 对服务器上的内存进行了某种解压缩吗?只是想知道有没有人看到同样的事情发生......

(ps直到我们去iis7才注意到它??)

代码正在...

0 投票
4 回答
13724 浏览

c# - WriteFile vs TransmitFile 用于传输后需要从服务器中删除的大文件

我必须触发用户将大文件下载到网络浏览器,在那里我创建要在服务器上传输的文件,然后立即将其删除。我已经找到了足够多的示例来了解我可能应该使用 Response.TransmitFile 或 Response.WriteFile... 但听说两者都存在问题:

WriteFile 是同步的,但它在将文件发送给用户之前将其缓冲在内存中。由于我正在处理非常大的文件,这可能会导致问题。

TransmitFile 不在本地缓冲,所以它确实适用于大文件,但它是异步的,所以我在调用 TransmitFile 后无法删除文件。显然刷新文件并不能保证我也可以删除它?

处理这个问题的最佳方法是什么?

还有 BinaryWrite ......我可以遍历文件流,分段复制它吗?

0 投票
1 回答
778 浏览

asp.net - ASP.NET TransmitFile 导致站点阻塞

每当我使用 TransmitFile 发送文件时,sirte 都会被用户阻止,直到文件完成。IOW,用户无法浏览该站点。

如果用户取消传输,它仍然会阻塞,直到站点超时或完成数据发送。我不知道是哪个,但我知道,例如,如果我在开始下载后立即取消 30MB 文件,恢复所需的时间比 10MB 文件要长。

以下是相关代码: