- 浏览: 189322 次
- 性别:
- 来自: 深圳
文章分类
最新评论
//TransmitFile实现下载
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();
}
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();
}
发表评论
文章已被作者锁定,不允许评论。
-
使用SignalR构建一个最基本的web聊天室
2015-01-06 15:09 766使用SignalR,可以使用服务器消息推送到客户端,件demo ... -
一台服务器访问另外一台服务器的共享目录
2014-12-19 10:50 605情况:A服务器的asp.ne程序需访问B服务器的共享目录, ... -
windows7 IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
2014-12-19 10:31 2413aspx 常见错误 CS0016: 未能写入输出文件“c:/ ... -
windows7 IIS7报错:如果要使用托管的处理程序,请安装 ASP.NET
2014-12-19 10:30 662windows7 IIS7报错:如果要使用托管的处理程序,请 ... -
Cookie小知识
2014-12-17 11:02 598如果cookie设置了过期时间,cookie就会保存在硬盘中 ... -
一个避免用户重复点击按钮造成重复数据的小技巧
2013-01-13 16:13 1222<script> //启用 ... -
SWFupload 上传控件的使用的使用
2012-12-02 16:17 868-- 首先说个解决 ie兼容的标签 <meta ht ... -
评论的延迟加载
2012-11-10 18:34 782看verycd、cnbeta的评论区域很奇怪,每次看完了正文, ... -
SessionID的本质
2012-11-05 23:08 708一、客户端用cookie保存了sessionID 客户 ... -
进程管理运用,防盗链,权限限制
2012-11-05 22:58 593图片防止盗链 void Appl ... -
进程外session配置
2012-11-05 22:57 878进程外session StateServer 对象必须可序列 ... -
分页底层实现(超原理)
2012-10-16 22:19 956--样式 .paginator{ font: 12px ... -
生命周期请求过程
2012-10-07 14:40 740客户端第一步:用户在地址栏里面输入地址,或者是提交表单第二步: ... -
C#,FTP上传的代码 FtpWebRequest
2012-08-24 22:46 962private void Upload(string file ... -
.net ajax控件实现百度,谷歌智能搜索
2012-08-08 22:11 897首先创建一个webservice,不懂也没关系,会用 ... -
asp.net几种开源上传控件,flash,ajax版,支持多文件
2012-08-08 22:11 19441、AspnetUpload 地址:http://www.a ... -
js和C#中的进制转换方法
2012-08-08 22:12 780在.net Framework中,System.Convert ... -
下拉框下的树形结构数据的绑定
2012-08-12 22:12 853privatevoid BindDropDownLi ... -
Repeater 控件实现无刷新分页
2012-08-12 22:13 1281本文讲述的是如何利用 XMLHttpRequest ... -
.net文件上传的各种操作及创建文件夹和删除上传的文件方法
2012-08-12 22:15 934aspx中<tr><td align=& ...
相关推荐
在ASP.NET中实现图片下载功能是一项常见的需求,尤其是在构建网站时提供用户下载资源。与简单的文本或文件链接不同,图片通常会被浏览器解析并显示,而不是触发下载。本篇将详细介绍如何在ASP.NET环境下构建一个有效...
通过以上步骤,你可以在ASP.NET MVC中实现批量打包下载的功能。提供的代码片段虽然简略,但展示了关键的实现思路。实际应用中,还需要结合项目具体需求进行扩展和完善。记住,始终关注代码的可读性、可维护性和安全...
描述 "实现在 asp.net 中调用打印功能 简单地整理了些资料" 表明,这篇文章将简单地整理了一些相关的资料,以便帮助读者快速了解如何在 ASP.NET 中实现打印功能。 标签解释 标签 "asp.net 打印 功能" 表明,这篇...
总之,ASP.NET提供了强大的支持来实现文件上传和下载功能。通过理解和实践这些技术,你可以创建一个稳定且用户友好的文件管理系统。在实际项目中,还需要根据业务需求进行定制和优化,以确保系统的安全性和性能。
2. **文件上传组件**:在ASP.NET中,`HttpFileUpload`控件是实现文件上传的核心组件。通过在HTML表单中添加该控件,用户可以选择本地文件并提交到服务器。服务器端的代码则负责接收文件,通常使用`Request.Files`...
ASP.NET MVC 文件管理功能Demo是基于ASP.NET MVC框架和Easy-UI前端库开发的一个实践项目,旨在实现对本地文件系统的全面操作。这个Demo涵盖了多种文件操作功能,包括上传、下载、复制、粘贴、压缩以及重命名等,使得...
在这个场景下,我们可以使用jQuery库中的`jquery.form`插件来增强页面的交互性,并结合ASP.NET后端技术,实现异步、无刷新的批量文件上传功能。下面我们将详细探讨这个过程中的关键知识点。 首先,`jQuery.form`...
ASP.NET MVC 实现文件上传下载功能实例教程 一、概述 在 ASP.NET 程序开发中,文件上传和下载功能非常常见。 Asp.net.Mvc 框架提供了多种方式来实现文件上传和下载功能。本文将通过实例形式来实现文件上传和下载...
对于学习者或开发者来说,这是一个极好的资源,可以深入理解ASP.NET如何应用于企业级文件管理系统的实现,以及如何利用C#(ASP.NET的主要编程语言)来设计和实现文件管理功能。 【标签】:“毕业设计 C# Java PHP”...
使用 ASP.NET Core 的文件上传机制,可以实现多文件上传、文件大小限制、文件类型限制等功能。此外,还可以使用 TagHelper 来简化表单的编写。 知识点6: 文件下载的实现 文件下载的实现可以使用 FileResult 来返回...
在 ASP.NET Core 中实现 Excel 导出功能需要掌握 ClosedXML 的使用方法,以及 ASP.NET Core 中的文件下载机制。通过本篇文章,可以了解如何使用 ClosedXML 将数据导出成 CSV 文件和 XLSX 文件,并且可以根据需要...
通过以上步骤,你可以在ASP.NET MVC项目中实现多文件下载的功能。请记住,实际的实现可能需要根据项目的需求和具体环境进行调整。在Testsite项目中,你可以找到相关的代码示例和配置,帮助你更好地理解和应用这些...
在本篇文章中,我们将深入探讨如何在 ASP.NET 环境下实现 PDF 的生成与导出。 首先,我们需要了解 ASP.NET 提供的一些基本工具和技术。ASP.NET 是微软推出的一种用于构建 Web 应用程序的框架,它支持多种编程语言,...
在这个“ASP.NET 实现上传下载案例”中,我们将探讨如何使用ASP.NET来实现文件的上传和下载功能。 首先,让我们了解上传功能的实现。在ASP.NET中,我们可以使用`<asp:FileUpload>`控件来让用户选择要上传的文件。...
总的来说,通过利用C#的`System.Net`命名空间,你可以方便地在ASP.NET环境中实现FTP远程文件下载功能,为用户提供高效、安全的文件获取服务。在实际开发中,还需要考虑错误处理、性能优化以及安全性等问题,确保应用...
在本文中,我们使用ASP.NET缓存机制来实现文件上传进度条的显示。ASP.NET缓存机制能够帮助我们缓存文件上传的信息,从而实现进度条的显示。在本文中,我们使用ASP.NET缓存机制来缓存文件上传的信息,然后使用ajax...
本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是Microsoft开发的一个用于构建动态网站、Web应用程序和服务的框架。它基于.NET Framework,提供了丰富的服务器控件、...
在你提供的压缩包文件列表中,有一个名为"Asp.Net实现下载功能.txt"的文件。这可能是详细步骤或者示例代码,你可以参考其中的内容进一步了解和实践Asp.Net实现下载功能的具体细节。 总的来说,Asp.Net结合C#可以...
下面我们将深入探讨如何在ASP.NET中实现这一功能。 首先,我们要了解的是,ASP.NET是一个用于构建Web应用程序的框架,它允许开发者使用.NET Framework的强大功能来创建动态网页。而Excel文件则通常用于存储和展示...