前端同时启动多个下载任务(但是没有做压缩包下载)
前端JavaScript脚本:
var idList = [1,2,3];//要下载的列表
$.each(idList, function (index, item) {downloadURL("/File/GetPdf?id=" + item);
});var count = 0;
var downloadURL = function downloadURL(url) {var hiddenIFrameID = 'hiddenDownloader' + count++;var iframe = document.createElement('iframe');iframe.id = hiddenIFrameID;iframe.style.display = 'none';document.body.appendChild(iframe);iframe.src = url;
}
后端:
//FileControllerpublic ActionResult GetPdf(int id)
{string fileName = "文件名";string path = "/filepath/";//文件路径string url = path + fileName ;if (url.Contains(".pdf")){return File(DownLoadFielToMemoryStream(url), "application/pdf", fileName);}else{return Content("<script>alert('文件格式错误')</script>");}
}private static MemoryStream DownLoadFielToMemoryStream(string url)
{var wreq = HttpWebRequest.Create(url) as HttpWebRequest;HttpWebResponse response = wreq.GetResponse() as HttpWebResponse;MemoryStream ms = null;using (var stream = response.GetResponseStream()){Byte[] buffer = new Byte[response.ContentLength];int offset = 0, actuallyRead = 0;do{actuallyRead = stream.Read(buffer, offset, buffer.Length - offset);offset += actuallyRead;}while (actuallyRead > 0);ms = new MemoryStream(buffer);}response.Close();return ms;
}