我的ASP.NET项目中有下载代码功能,下载代码如下所示。
public class Download : IHttpHandler
{
private void DownloadPsListingProduct(Guid which)
{
string path = GetFilePathFromGuid(which);
FileInfo file = new FileInfo(path);
HttpResponse response = HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "application/octet-stream";
response.AddHeader("Content-Disposition",
"attachment;filename=\"" + file.Name.NeutralizationCrlfSequences() + "\";");
response.TransmitFile(file.FullName);
response.Flush();
response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
当我一次下载单个文件时,此代码就像一个魅力。 但是当一个文件正在下载并且我请求下载其他文件时,它首先等待第一个文件下载完成然后第二个文件下载开始。
注意:我发送新请求以下载每个文件。
我想避免这种单一文件下载行为,用户应该能够下载文件而无需等待上一个文件完成。
答案 0 :(得分:0)
ASP.NET Web API 2应该能够以很少的仪式处理这个问题。有一个例子here,但我会重复重要的部分:
border-bottom: 70px solid red; (change 70px here for example)
当然,在ASP.NET Web API 2中连接路由等与挂钩public class FilesController : ApiController
{
public IHttpActionResult(Guid fileId)
{
var filePath = GetFilePathFromGuid(fileId);
var fileName = Path.GetFileName(filePath);
var mimeType = MimeMapping.GetMimeMappting(fileName);
return OkFileDownloadResult(filePath, mimeType, fileName, this);
}
}
完全不同,但是在互联网上也有很多关于如何获取的例子(包括SO)从那开始。