为什么用了UTF-8还乱吗。
整个站全是UTF-8
数据类型是NVARCHAR
public static void ResponseFile(string filepath, string filename, string filetype)
{
Stream iStream = null; // 缓冲区为10k
byte[] buffer = new Byte[10000]; // 文件长度
int length; // 需要读的数据长度
long dataToRead; try
{
// 打开文件
iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);
// 需要读的数据长度
dataToRead = iStream.Length; HttpContext.Current.Response.ContentType = filetype;
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Utils.UrlEncode(filename.Trim()).Replace("+", " ")); while (dataToRead > 0)
{
// 检查客户端是否还处于连接状态
if (HttpContext.Current.Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
HttpContext.Current.Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
// 如果不再连接则跳出死循环
dataToRead = -1;
}
}
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("Error : " + ex.Message);
}
finally
{
if (iStream != null)
{
// 关闭文件
iStream.Close();
}
}
HttpContext.Current.Response.End();
}
整个站全是UTF-8
数据类型是NVARCHAR
public static void ResponseFile(string filepath, string filename, string filetype)
{
Stream iStream = null; // 缓冲区为10k
byte[] buffer = new Byte[10000]; // 文件长度
int length; // 需要读的数据长度
long dataToRead; try
{
// 打开文件
iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);
// 需要读的数据长度
dataToRead = iStream.Length; HttpContext.Current.Response.ContentType = filetype;
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Utils.UrlEncode(filename.Trim()).Replace("+", " ")); while (dataToRead > 0)
{
// 检查客户端是否还处于连接状态
if (HttpContext.Current.Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
HttpContext.Current.Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
// 如果不再连接则跳出死循环
dataToRead = -1;
}
}
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("Error : " + ex.Message);
}
finally
{
if (iStream != null)
{
// 关闭文件
iStream.Close();
}
}
HttpContext.Current.Response.End();
}
解决方案 »
- 看看有几个做错了
- .net框架程序设计 这本书的电子书,要求是CHM格式
- 请高手给些VBScript操作datagrid的源码,谢谢
- 【求助】textbox 限定格式的年月 输入
- xml的一个问题!
- 新手求助:使用配置文件跟踪语言首选项问题
- 好人帮忙,没分了
- 不拖放datagrid到窗口,用代码生成DATAGRID并绑定数据后为什么datagrid没有显示出来?
- 怎样用ado.net(C#)调用带参数的access2000数据库的查询(存储过程)?
- 公益活动:统计所有提供asp.net书籍下载的网站以及ftp。分不够再加。
- 如何在XSL中循环所有的孩子节点?
- javascript:parent.frames.rightFrame.relogin();是什么意思?
{
// 打开文件
iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);
// 需要读的数据长度
dataToRead = iStream.Length; HttpContext.Current.Response.ContentType = filetype;
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Utils.UrlEncode(filename.Trim()).Replace("+", " ")); while (dataToRead > 0)
{
// 检查客户端是否还处于连接状态
if (HttpContext.Current.Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
HttpContext.Current.Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
// 如果不再连接则跳出死循环
dataToRead = -1;
}
}
} 增加一句try
{
// 打开文件
iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);
// 需要读的数据长度
dataToRead = iStream.Length; HttpContext.Current.Response.ContentType = filetype;
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Utils.UrlEncode(filename.Trim()).Replace("+", " ")); while (dataToRead > 0)
{
// 检查客户端是否还处于连接状态
if (HttpContext.Current.Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
HttpContext.Current.Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
// 如果不再连接则跳出死循环
dataToRead = -1;
}
}
}