下载文件 - 防止第二次下载,直到第一次完成

时间:2017-02-15 09:17:57

标签: c# asp.net download

我的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;
        }
    }
}

当我一次下载单个文件时,此代码就像一个魅力。 但是当一个文件正在下载并且我请求下载其他文件时,它首先等待第一个文件下载完成然后第二个文件下载开始。

注意:我发送新请求以下载每个文件。

我想避免这种单一文件下载行为,用户应该能够下载文件而无需等待上一个文件完成。

1 个答案:

答案 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)从那开始。