我有一个 ASP.NET Web 应用程序,部分允许用户上传(和下载)文档。上传也不是很好,但是我的下载对话框有一个严重的问题,我不知道为什么。
这些文件存储在与代码不在同一台机器上的共享上。我正在尝试使用文件重载文件(位置、mimetype、显示名称)通过 FilePathResult 发送下载。
当用户单击下载链接时,它将打开一个新的空白页面并开始加载动画,但对于较大的文件(最大 25 mb)会坚持几分钟,然后显示保存/下载对话框,然后实际下载文件大约需要 5 秒钟。
我一直在寻找和寻找,到目前为止,我发现的唯一一件事是 FilePathResult 不应该在内存中缓冲文件,而是简单地将文件交给用户下载。
有没有人知道为什么需要一个好的(定时)5m 45s 才能在只有 24 mb 的文件上显示下载对话框?我觉得 IIS 或 asp 在不应该的地方预加载了文档,即使是这样一个小文件的时间太多了......
以供参考:
public FilePathResult DownloadFile(int id)
{
var file = _fileService.GetByIdForUser(id, base.LoggedInUserId);
return File(file.Location, UploadedFileManager.DetermineContentTypeFrom(file.Extension), file.Name);
}