介绍
让用户从我们的网站上下载各种类型的文件是一个比较常用的功能,这篇文章就是告诉您如何创建一个.txt文件并让用户下载。
使用代码
虽然在示例里,我先创建了一个text文件,但是你不一定也要这么做,因为这个文件可能在你的网站里已经存在了。如果是这样的话,你只需要使用FileStream去读取它就可以了。
首先,我们将这个text文件读取到一个byte数组中,然后使用Response对象将文件写到客户端就可以了。
Response.AddHeader("Content-disposition", "attachment; filename=" + sGenName);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(btFile);
Response.End();
这段代码是完成这个功能的主要代码。第一句在输出中添加了一个Header,告诉浏览器我们发送给它的是一个附件类型的文件。然后我们设置输出的ContentType是"application/octet-stream",即告诉浏览器要下载这个文件,而不是在浏览器中显示它。
下面是一个MIME类型的列表。
".asf" = "video/x-ms-asf"
".avi" = "video/avi"
".doc" = "application/msword"
".zip" = "application/zip"
".xls" = "application/vnd.ms-excel"
".gif" = "image/gif"
".jpg"= "image/jpeg"
".wav" = "audio/wav"
".mp3" = "audio/mpeg3"
".mpg" "mpeg" = "video/mpeg"
".rtf" = "application/rtf"
".htm", "html" = "text/html"
".asp" = "text/asp"
'所有其它的文件
= "application/octet-stream"
下面是一个完整的如何下载文本文件的示例代码
C#
protectedvoid Button1_Click(object sender, EventArgs e)
{
string sFileName = System.IO.Path.GetRandomFileName();
string sGenName = "Friendly.txt";
//YOu could omit these lines here as you may not want to save the textfile to the server
//I have just left them here to demonstrate that you could create the text file
using (System.IO.StreamWriter SW = new System.IO.StreamWriter(Server.MapPath("TextFiles/" + sFileName + ".txt")))
{
SW.WriteLine(txtText.Text);
SW.Close();
}
System.IO.FileStream fs = null;
fs = System.IO.File.Open(Server.MapPath("TextFiles/" + sFileName + ".txt"), System.IO.FileMode.Open);
byte[] btFile = newbyte[fs.Length];
fs.Read(btFile, 0, Convert.ToInt32(fs.Length));
fs.Close();
Response.AddHeader("Content-disposition", "attachment; filename=" + sGenName);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(btFile);
Response.End();
}
VB.NET
Dim strFileName AsString = System.IO.Path.GetRandomFileName()
Dim strFriendlyName AsString = "Friendly.txt"
Using sw AsNew System.IO.StreamWriter(Server.MapPath("TextFiles/" + strFileName + ".txt"))
sw.WriteLine(txtText.Text)
sw.Close()
EndUsing
Dim fs As System.IO.FileStream = Nothing
fs = System.IO.File.Open(Server.MapPath("TextFiles/" + strFileName + ".txt"), System.IO.FileMode.Open)
Dim btFile(fs.Length) AsByte
fs.Read(btFile, 0, fs.Length)
fs.Close()
With Response
.AddHeader("Content-disposition", "attachment;filename=" & strFriendlyName)
.ContentType = "application/octet-stream"
.BinaryWrite(btFile)
.End()
EndWith
小结
使用这个方法,你可以实现在Windows系统下下载所有的文件类型。但是在Macintosh系统下会有些问题。
分享到:
相关推荐
在 ASP.NET 中,导出 PDF 文件是一项常见的需求,主要用于生成报表、发票或证书等文档。PDF(Portable Document Format)格式因其跨平台性和可读性而被广泛应用。在本篇文章中,我们将深入探讨如何在 ASP.NET 环境下...
在Asp.Net中实现下载功能是一项常见的任务,它涉及到服务器端与客户端的交互,以便用户可以获取并保存服务器上的文件。下面将详细讲解如何利用C#语言和Asp.Net技术来实现在网页上点击按钮触发文件下载的过程。 首先...
在ASP.NET中,导出CSV(逗号分隔值)文件是一项常见的任务,它允许用户将数据以易于处理和导入到其他应用程序(如电子表格软件)的格式下载。CSV文件因其简单性和通用性而被广泛使用。 导出CSV文件的基本过程包括...
在ASP.NET中,文件上传和下载是Web应用中常见的功能,尤其在处理用户交互和数据交换时至关重要。本文将深入探讨如何在ASP.NET环境中实现这两个关键功能。 首先,我们需要了解ASP.NET文件上传的基本原理。在ASP.NET...
在ASP.NET开发中,实现中英文转换是一种常见的需求,尤其对于多语言网站或者有国际用户基础的应用来说。这里,我们主要探讨如何通过配置文件来轻松实现这一功能,而无需使用字典类或者其他复杂的翻译机制。 首先,...
在ASP.NET应用程序中,`ContentType`是一个非常重要的属性,它决定了服务器响应时所发送的数据类型。浏览器通过这个信息来解析响应的内容,从而正确地展示给用户。例如,当一个响应的`ContentType`设置为"text/html"...
**FCK编辑器在ASP.NET和MVC中的应用** FCKeditor是一款强大的开源富文本编辑器,它允许用户在Web页面上进行类似Word的文本编辑操作。在ASP.NET和MVC框架下,集成FCKeditor可以提升用户体验,使得内容创建和编辑更为...
本篇将深入探讨如何在ASP.NET环境中实现全浏览器通用的TXT文件读写功能。 首先,读取TXT文件的基本步骤包括打开文件、读取内容和关闭文件。在ASP.NET中,我们可以使用System.IO命名空间下的StreamReader类来完成这...
在ASP.NET开发中,我们经常需要与用户交互,允许他们下载、上传或保存文件。"asp.net 使用保存文件对话框"这个主题就是关于如何在Web应用程序中实现这一功能的。在C#编程环境下,我们可以利用ASP.NET的服务器控件和...
ASP.NET 2.0 类库浏览器是一个非常实用的工具,尤其对于那些在.NET框架下进行开发,特别是ASP.NET 2.0平台的开发者而言。它提供了便捷的方式,帮助开发者快速了解和查找可用的类库、方法和属性,从而提高开发效率。...
ASP.NET 导出 CSV 文件是指使用 ASP.NET 框架将数据导出到 CSV 文件格式中。CSV(Comma Separated Values)是一种常用的文本文件格式,用于存储表格数据。ASP.NET 提供了多种方式来导出 CSV 文件,本文将介绍其中的...
在ASP.NET编程中,导入和导出Excel文件是一种非常常见的功能。Npoi是一个开源的库,能够帮助开发者轻松地实现Excel文件的导入和导出。本文将详细介绍如何使用Npoi在ASP.NET中导入和导出Excel文件。 一、Npoi导出/...
### ASP.NET上传文件的核心知识点解析 #### 一、ASP.NET文件上传原理与实践 在Web开发中,文件上传是一项常见的需求。ASP.NET提供了一种简便的方式来处理文件上传操作。通过本篇文章,我们将深入探讨如何利用ASP...
在ASP.NET中实现文件下载主要依赖于HTTP响应对象(`Response`),通过设置响应头(`Response.Headers`)和内容类型(`ContentType`),服务器可以告诉浏览器接收到的数据应该被解释为一个可下载的文件。具体来说,...
本文档将详细讲解如何使用Visual Studio 2010(简称VS2010)在ASP.NET中实现文件上传与下载的功能,并提供了一个具体的代码示例。 #### 二、文件上传功能实现 文件上传通常涉及到文件的选择、服务器端存储路径的...
### ASP.NET 中中文乱码问题解析 #### 一、背景介绍 在开发基于 ASP.NET 的应用程序时,中文字符的正确显示往往是一个不容忽视的问题。由于编码格式的不同或配置不正确,很容易导致页面上的中文出现乱码现象。本文...
本文将深入探讨如何在ASP.NET中实现图片上传,并且在客户端进行文件大小、尺寸和类型的验证,以及提供图片预览功能,同时确保兼容多种浏览器。 首先,我们需要一个HTML表单来收集用户选择的文件。在表单中,`...
综上所述,Uploadify 3.2在ASP.NET中的应用涉及到前端JavaScript的配置和后端C#代码的实现,通过结合这两部分,可以构建一个功能完善的文件上传系统。理解这些基本概念和步骤,你就能有效地利用Uploadify提升你的ASP...
在这个例子中,`Content-Disposition`头设置为`attachment`,这意味着浏览器将以附件形式下载文件,而不是尝试在当前页面内打开它。`filename`参数用于指定客户端保存文件时的名称。 ### `WriteFile` 实现下载 另...
它利用了ASP.NET框架提供的各种工具和技术,如`Repeater`控件、HTTP响应控制以及文件系统操作等,从而实现了一个简洁而实用的文件下载解决方案。对于开发者而言,掌握这些技术不仅有助于提升开发效率,还能更好地...