.net下载文件的几种方式

news/2024/7/24 14:20:52/
protected void Button1_Click(object sender, EventArgs e)
{
/*
微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite
下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。
代码如下:
*/
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");
string filename = Server.MapPath("DownLoad/aaa.zip");
Response.TransmitFile(filename);
}
//WriteFile实现下载
protected void Button2_Click(object sender, EventArgs e)
{
/*
using System.IO;
*/
string fileName ="aaa.zip";//客户端保存的文件名
string filePath=Server.MapPath("DownLoad/aaa.zip");//路径
FileInfo fileInfo = new FileInfo(filePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType = "application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
}
//WriteFile分块下载
protected void Button3_Click(object sender, EventArgs e)
{
string fileName = "aaa.zip";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.zip");//路径
System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
if (fileInfo.Exists == true)
{
const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
byte[] buffer = new byte[ChunkSize];
Response.Clear();
System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);
long dataLengthToRead = iStream.Length;//获取下载的文件总大小
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));
while (dataLengthToRead > 0 && Response.IsClientConnected)  
{
int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
Response.Close();
}
}
//流方式下载
protected void Button4_Click(object sender, EventArgs e)
{
string fileName = "aaa.zip";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.zip");//路径
//以字符流的形式下载文件
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
} 


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

相关文章

Ubuntu18.04下常用软件的安装

视频播放器 Ubuntu下自带的软件播放器并不好用,不像Windows那样自带的还凑合还能用。所以,有必要安装一个好用的视频播放器。 sudo apt-add-repository ppa:rvm/smplayer sudo apt update sudo apt install smplayer smplayer-skins smplayer-themes如果是Ubuntu16.04及以下…

TOMCAT 下载与安装

官网选择安装包 https://tomcat.apache.org/download-70.cgi?Preferredhttp%3A%2F%2Fmirror.bit.edu.cn%2Fapache%2F选择合适的镜像在需要的包上右键复制链接LINUX中通过 wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.96/bin/apache-tomcat-7.0.96.tar.gz解压 …

下载与安装HCL

HCL是H3C目前官方唯一出品的模拟器,整个产品的界面设计和性能比行业的其他H3C模拟器都要强大。华三云实验室(H3C Cloud Lab,简称HCL)是一款界面图形化的全真网络模拟软件,用户可以通过该软件实现H3C公司多个型号的虚拟…

iterm2下载以及使用

最近mac自带的terminal 老是抽风崩溃不知道又给我的电脑更新了什么新的bug进去。 索性使用一下好评度较高的iterm2来替代它的工作,首先下载iterm: brew cask install iterm2 很简单的下载完成。。。。 但是我又喜欢terminal的透明背景怎么办&#xff0…

Openmpi 安装教程 并行 openmpi-4.0.0

1、将openmpi源码包导入/opt/software目录(可以选择你自己常用的目录导入) 2、解压Openmpi源码包 tar -xvf openmpi-4.0.0.tar.gz 3、安装OpenMPI、进入源码根目录,运行配置文件,开始安装: cd openmpi-4.0.0/ ./confi…

深度linux系统live版,【Deepin linux下载】Deepin Linux官方下载 v20 最新免费版(ios+Live)-开心电玩...

Deepin linux20介绍 Deepin linux20原名为Hiweed Linux,是一款在在ubuntu基础上开发的开源的免费的linux操作系统,支持笔记本、桌面计算机和一体机使用。Deepin linux20是目前的最新版本,采用全面的高清配置,支持WiFi热点支持,新增指纹解锁功能,还能自动调节颜色,保护双…

mysql下载和安装详细教程

参考链接: https://blog.csdn.net/zhujialiang18/article/details/79780131 https://www.jb51.net/article/158587.htm 下载安装包链接: 一.MySQL的下载与安装 1.下载MySQL:https://dev.mysql.com/downloads/(官网)&a…

Python(含PyCharm及配置)下载安装以及简单使用(Idea)

写在前面 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:人工智能学习网站 下载 Python官网下载地址:Python下载 不同参数解释,小伙伴们根据自己情况进行下载即可(此处博主用的是3.7.3版本): –web-base…

Deepin系统初长成

2022年,Deepin20.6惊艳到我了。从蓝点linux到SLAX,然后magiclinux,然后红旗桌面版,然后乌班图,这么多年下来,真正能够让我这从事IT行业的人用着顺手的Linux桌面版,终于长成了。 一.系统安装图形…

Easy File Sharing Server7.2漏洞复现

一、easy file sharing server7.2漏洞复现 漏洞简述 easy file sharing server缓冲区漏洞 实验环境 攻击机:kali linux 靶机:windows(这里我使用的靶机是win2003sever) 配置在同一网络环境下(同网段)…

C#开发之Excel录入

用NPOI创建一个新的EXCEL文件。 第一步,引用空间 using NPOI.HSSF.UserModel; using NPOI.SS.UserModel;创建工作簿 HSSFWorkbook wk new HSSFWorkbook(); //创建一个Sheet ISheet sheet wk.CreateSheet("例子");XSSFWorkbook xssfworkbo…

曲线曲面基础:5.张量积曲面

曲线 C ( u ) C(u) C(u)是单参数的矢值函数,它是由直线段到三维欧几里得空间的映射(变形)。曲面是关于两个参数 u u u和 v v v的矢值函数,它表示由 u v uv uv平面上的二维区域 R R R到三维欧几里得空间的映射。因此,它…

一次方维o2o商城PHP审计学习

PHP审计源码学习 一、渗透测试 起因是朋友问fanwei o2o源码搭建的站后台能不能拿shell,于是我进后台进行了一番尝试,各功能点没什么进展,好多地方过滤了,上传也是白名单,编辑器的1day修了,万幸的是有个拿…

热电阻温度计 电阻温度探测器 直接浸入式清洁传感器 精密RTD 美国Burns 胶囊式铂电阻温度检测器 迷你RTD整体热电偶套管 气温传感器 测温传感器 温度传感器 温度传感器生产厂家 温度变送器

计量产品 二级标准PRT 二级标准铂电阻温度计是高度精确的温度测量传感器,主要用于实验室温度校准。 工业二级标准PRT 工业二级标准铂电阻温度计是坚固、精确且经济高效的温度测量传感器,主要用于现场温度校准。 低温探头 低温探头用作零度以下环境的温…

SHT20温湿度传感器

sht20和 arduino UNO的接线方法: SCL - A5 SDA - A4 VCC-3.3V GND-GND 用到的库函数 库函数下载地址:https://download.csdn.net/download/hbmmcisn/20626748?spm1001.2014.3001.5501 #include <Wire.h> #include "DFRobot_SHT20.h"DFRobot_SHT20 sht20…

温度检测报警器

/* 实验接线&#xff1a;1&#xff0c;LCD1602液晶模块-->单片机管脚参考LCD1602液晶显示实验接线&#xff08;开发攻略内在对应的实验章节内实验现象有接线说明&#xff09;2&#xff0c;独立按键模块-->单片机管脚 K1-->P34K2-->P35K3-->P323&#xff0c;蜂鸣…

基于 STM 32 的温湿度检测系统

STM32 最小系统不含外设控制&#xff0c;原理简单&#xff0c;分析最小系统是嵌入式入门的基础。我 们通过课程设计能够综合运用所学嵌入式系统课程和其他先修课程的理论和实际知识&#xff0c; 以及利用 Altium Designer、Protel、DXP2004 等工具实现嵌入式系统硬件设计、嵌入…

温升测试范围及方法

温升试验是电器产品型式试验中常规的试验项目&#xff0c;温升试验的目的是测试电器产品及部件的温度变化情况&#xff0c;以确定电器产品或部件是否符合标准的要求。随着电器产器日新月异的发展&#xff0c;温升试验对电器设备及部件产品安全性变得越来越重要。温升测试是型式…

竣达技术丨智能温湿度检测单元

一、概述 该产品用于环境温湿度监测&#xff0c;同时支持1路输入扩展可接烟感漏水等开关量设备&#xff0c;支持0.96寸128*64高分辨率OLED显示 二、产品外观及尺寸 尺寸&#xff1a;57mm(L)*81mm(w)*32mm(H) 重量&#xff1a;60g 三、技术参数 1.内置高精度温湿度传感器和低…

温度报警器

文章目录 前言一、单总线二、DS18B20温度读取三、主函数 前言 上节中对 “DS18B20” 进行初步的介绍&#xff0c;&#xff0c;本节则是对其的基本应用之一。 在实例应用之前需要先了解一下“单总线” 一、单总线 简介 单总线(1-Wire BUS)是由Dallas公司开发的一种通用数据…