网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

Response.ContentType 控制输出文件类型

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 14/02/25

本文主要为广大网友提供“Response.ContentType 控制输出文件类型”,希望对需要Response.ContentType 控制输出文件类型网友有所帮助,学习一下!

服务器送给客户端的数据包类型可以是text/html文本,也可以是gif/jpeg图形文件,所以每次传输前,我们都必须告知客户端将要传输的文件类型,一般默认情况下为“Text/Html”类型。
<% Response.ContentType = "text/HTML" %>
<% Response.ContentType = "image/GIF" %>
<% Response.ContentType = "image/JPEG" %>
<% Response.ContentType = "text/plain" %>
<% Response.ContentType = "image/JPEG" %>
<% Response.ContentType = "application/x-cdf" %>
用于作为文本内容返回而不是已解释的 HTML 语句
Response.ContentType = "text/plain"



<%
Response.ContentType = "text/plain"
Response.write(now()&"会被执行么?")
%>



你可以注意到:页面提供下载,页面中的ASP内容被解释执行了的

程序文件以XLS文件被提供下载
Response.ContentType = "application/vnd.ms-excel"



<%
Response.ContentType = "application/vnd.ms-excel"
Response.write("本页面调试会出现下载对话框提供下载,保存类型为XLS")
%>




实现歌曲连续播放
response.ContentType="audio/x-pn-realaudio"



<%
dim ramstr
ramstr=""
set rs=server.createobject("adodb.recordset")
sql="XXXXXXXXXXX"
rs.open sql,conn,1,3 ''conn已定义
do while not rs.eof
ramstr=ramstr&rs("url")&vbCrLf
rs.movenext
loop
rs.close
response.ContentType="audio/x-pn-realaudio"
''response.ContentType="audio/x-mpegurl"
response.write ramstr
%>




response.write 输出的时候,由于定义了response.ContentType 所以输出歌曲地址的时候会自动调用符合相应格式的软件来播放歌曲,不过前提是播放歌曲的软件必须先安装的。

以上文章转贴自http://www.w269.com/infow269/1145w2691.htm
这里我想讨论一下,这么也东东。

Q:如何利用ContentType 来,在服务器上提供一个.xls后缀的文件点击下载而不是直接在浏览器中打开。(注意:于上程序文件以XLS文件被提供下载有所不同)

Response.ContentType = "application/x-download",让整个程序文件点击下载了。怎么办好呢???

A:解决方案1. 利用Response.WriteFile的文件输出操作
具体在按钮点击事件中添加一下代码
private void btnDownload_Click(object sender, System.EventArgs e)
{
string DownloadFileName=Server.MapPath("file.xls");
string filepath = DownloadFileName;

// Identify the file name.
string filename = System.IO.Path.GetFileName(filepath);

Response.Clear();

// Specify the Type of the downloadable file.
Response.ContentType = "application/octet-stream";

// Set the Default file name in the FileDownload dialog box.
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);

Response.Flush();

// Download the file.
Response.WriteFile(filepath);
}
以上代码也适合用于小于100MB的小文件下载
如果是大于100MB的大文件下载可以用Response.FileStream 。

C#代码如下:(将 DownloadFileName 替换为大于 100 MB 的文件的名称。)

System.IO.Stream iStream = null;

// Buffer to read 10K bytes in chunk:
byte[] buffer = new Byte[10000];

// Length of the file:
int length;

// Total bytes to read:
long dataToRead;

// Identify the file to download including its path.
string filepath = "DownloadFileName";

// Identify the file name.
string filename = System.IO.Path.GetFileName(filepath);

try
{
// Open the file.
iStream = new System.IO.FileStream(filepath, System.IO.FileMode.Open,
System.IO.FileAccess.Read,System.IO.FileShare.Read);//用文件流来处理


// Total bytes to read:
dataToRead = iStream.Length;

Response.ContentType = "application/octet-stream";//问题就在这里,解决百M关口
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);

// Read the bytes.
while (dataToRead > 0)
{
// Verify that the client is connected.
if (Response.IsClientConnected)
{
// Read the data in buffer.
length = iStream.Read(buffer, 0, 10000);

// Write the data to the current output stream.
Response.OutputStream.Write(buffer, 0, length);

// Flush the data to the HTML output.
Response.Flush();

buffer= new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
//prevent infinite loop if user disconnects
dataToRead = -1;
}
}
}
catch (Exception ex)
{
// Trap the error, if any.
Response.Write("Error : " + ex.Message);
}
finally
{
if (iStream != null)
{
//Close the file.
iStream.Close();
}
}
  • 上一篇资讯: Active Directory 对象控制
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号