JavaScript+Asp.Net MVC5同时下载多个文件

前端同时启动多个下载任务(但是没有做压缩包下载)

前端JavaScript脚本:

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

后端:

javascript 复制代码
//FileController

public 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;
}
相关推荐
大家的林语冰9 分钟前
Canvas 文艺复兴,HTML-in-Canvas 炫酷特效摆拍走红,Canvas 中也能渲染交互式的 HTML 元素了
前端·javascript·html
程序leo源2 小时前
Qt信号与槽深度详解
c语言·开发语言·数据库·c++·qt·c#
2401_865439632 小时前
CSS中隐藏元素的多重技巧与应用场景
开发语言·前端·javascript
烛衔溟2 小时前
TypeScript 中的类基础
javascript·ubuntu·typescript
mCell2 小时前
从云相册的缩略图说起:Bun.Image 让我告别 sharp
javascript·图片资源·bun
ljt27249606613 小时前
Vue笔记(三)--用户交互
javascript·vue.js·笔记
Martin -Tang3 小时前
uniapp 实现录音操作,长按录音,放开取消
前端·javascript·vue.js·uni-app·css3·录音
ZC跨境爬虫4 小时前
跟着 MDN 学 HTML day_58:(构建行星数据表——HTML表格高级实战指南)
前端·javascript·ui·html·音视频
kyriewen4 小时前
用户打开飞行模式都能打开你的网站?Service Worker 做离线缓存,PWA 实战
前端·javascript·面试