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

news/2025/1/14 5:52:17/

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

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


http://www.ppmy.cn/news/1018838.html

相关文章

OpenCV 中的光流 (C++/Python)

什么是光流? 光流是一项视频中两个连续帧之间每像素运动估计的任务。基本上,光流任务意味着计算像素的位移矢量作为两个相邻图像之间的对象位移差。光流的主要思想是估计物体由其运动或相机运动引起的位移矢量。 理论基础 假设我们有一个灰度图像——具有像素强度的矩阵。我…

实现链式队列

dl.h dl.c main.c 结果

芒果 TV 基于 Flink 的实时数仓建设实践

公司简介&#xff1a;芒果 TV 作为湖南广电旗下互联网视频平台&#xff0c;在“一云多屏&#xff0c;多元一体”的战略指导下&#xff0c;通过内容自制&#xff0c;培植核心竞争力&#xff0c;从独播、独特走向独创&#xff0c;并通过市场化运作完成 A 轮、B 轮融资&#xff0c…

C++学习| VS配置FFTW3以及一维傅里叶变换的使用

前言&#xff1a;最近要用C对信号进行一维傅里叶变换&#xff0c;但是对傅里叶变换的内容有些遗忘了&#xff0c;同时自己对FFTW使用也不太了解&#xff0c;所以写下此篇方便以后回顾。 VS项目配置FFTW3 FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散…

从0开始搭建一个Monorepo模版,基于Turborepo+pnpm+changesets+dumi

Monorepo 前言开始一、使用turborepo初始化项目二、调整目录结构及文件1. 调整package.json文件2. 调整app目录3. 调整eslint包4. 调整ui包5. 调整eslint配置6. 调整.npmrc7. 使用commitizen规范代码提交8. 使用commitlinthusky进行 commit提交信息校验9. 使用husky进行commit前…

《CUDA C++ Programming Guide》第二章 CUDA 编程模型概述

2.1 内核 CUDA C 通过允许程序员定义称为kernel的 C 函数来扩展 C&#xff0c;当调用内核时&#xff0c;由 N 个不同的 CUDA 线程并行执行 N 次&#xff0c;而不是像常规 C 函数那样只执行一次。 使用 __global__ 声明说明符定义内核&#xff0c;并使用新的 <<<...&g…

释放AI创作潜能:从大模型训练到高产力应用

文章目录 每日一句正能量前言什么是人工智能生成内容&#xff08;AIGC&#xff09;人工智能生成内容&#xff08;AIGC&#xff09;能做什么为什么要用人工智能生成内容&#xff08;AIGC&#xff09;创作成果用Java实现冒泡排序算法学生信息收集系统学生请假管理系统需求分析教务…

Maven基础总结

前言 Maven 是一个项目管理工具&#xff0c;可以对 Java 项目进行构建、依赖管理。 基本要求掌握 配置Maven环境直接查。 得会在IDEA创建Maven的java项目吧、会创建Maven的web项目吧、会创建多模块项目吧。 得会配置插件pligin、依赖dependency吧 一、Maven四大特性 1、…