Angular问题总结-文件的下载

Angular问题总结-文件的下载

问题描述:主要分为单个文件下载,以及文件压缩之后下载
解决方案:

压缩文件的下载:
//后端代码
//压缩后下载
			//首选需要去判断压缩文件存放的目录是否存在,必须存在
            var zipUrl = Path.Combine(Environment.CurrentDirectory, IMSConstants.FileTempStorageFolder);
            if (!Directory.Exists(zipUrl)) { 
            //文件夹创建
                Directory.CreateDirectory(zipUrl);
            }
            //文件存放的文件夹目录
            string startPath = Path.Combine(Environment.CurrentDirectory, 文件夹目录);
            //压缩文件名
            string fileName = DateTime.Now.ToString("HH\\mm\\ss") + "result.zip";
            //压缩文件存放的目录
            string zipPath = Path.CombinezipUrl, fileName);
            //创建压缩文件
            ZipFile.CreateFromDirectory(startPath, zipPath);
            //new一个内存流,因为文件流如果要返回前端,再返回过程中不可以关闭,并且新建的压缩文件也就无法删除
            MemoryStream ms = new MemoryStream();
            using (FileStream fs = new FileStream(zipPath, FileMode.Open))
            {
            // 将文件流写入到内存流中,不过要给Position定义为0 让他重新读
                fs.CopyTo(ms);
                ms.Position = 0;
            }
            //删除压缩文件
            System.IO.File.Delete(zipPath);
            //返回内存流,此时文件不建议过大,会造成延迟
            return File(ms, "application/octet-stream", DateTime.Now.ToString("HHmmss") + "result.zip");
//前端下载
直接将请求放入到超联系的href中即可
单个文件下载
string sFilePath = Path.Combine(Environment.CurrentDirectory, model.Path);

            FileStream fs = new FileStream(sFilePath, FileMode.Open);
            //如果文件下载之后需要删除 可以仿照压缩文件将文件流写入到内存中即可
            return File(fs, "application/octet-stream", model.Path_Name);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值