一个关于下载文件的代码,保证不出现中文乱码!
来源:互联网 发布:java项目开发实录视频 编辑:程序博客网 时间:2024/04/30 04:12
代码如下:
/// <summary>
///文件下载类.
///短小精悍的,绝对好用,支持中文不乱码
/// </summary>
/// <param name="FileName">客户端保存的文件名 </param>
private void FileDownload(string FileName)
{
try
{
string filePath = Server.MapPath("DownLoad/" + FileName + "");//下载完整路径
FileInfo fileInfo = new FileInfo(filePath);
if (!fileInfo.Exists)
{
Response.Write(" <script>alert('文件不存在'); </script>");
return;
}
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
//设置输出流的 HTTP MIME 类型
Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开。下载时,显示文件名
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8));
//下载时,显示文件大小
Response.AppendHeader("Content-Length", fileInfo.Length.ToString());
Response.WriteFile(filePath);
Response.Flush();
Response.End();
}
catch (Exception ee)
{
if (Trace.IsEnabled)
{ Trace.Warn(ee.Message); }
Response.Write(" <script>alert('下载失败'); </script>");
}
}
如果此时运行此代码,能成功下载,但如果要单步执行,则会出现异常。解决办法:去掉Response.End();
即可。
注,路径,要写对。
其实,在网页的HTML代码中,也可以用 <a href="文件路径">文件名 </a>来实现,这个最简单。
/// <summary>
///文件下载类.
///短小精悍的,绝对好用,支持中文不乱码
/// </summary>
/// <param name="FileName">客户端保存的文件名 </param>
private void FileDownload(string FileName)
{
try
{
string filePath = Server.MapPath("DownLoad/" + FileName + "");//下载完整路径
FileInfo fileInfo = new FileInfo(filePath);
if (!fileInfo.Exists)
{
Response.Write(" <script>alert('文件不存在'); </script>");
return;
}
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
//设置输出流的 HTTP MIME 类型
Response.ContentType = "application/octet-stream";
//通知浏览器下载文件而不是打开。下载时,显示文件名
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8));
//下载时,显示文件大小
Response.AppendHeader("Content-Length", fileInfo.Length.ToString());
Response.WriteFile(filePath);
Response.Flush();
Response.End();
}
catch (Exception ee)
{
if (Trace.IsEnabled)
{ Trace.Warn(ee.Message); }
Response.Write(" <script>alert('下载失败'); </script>");
}
}
如果此时运行此代码,能成功下载,但如果要单步执行,则会出现异常。解决办法:去掉Response.End();
即可。
注,路径,要写对。
其实,在网页的HTML代码中,也可以用 <a href="文件路径">文件名 </a>来实现,这个最简单。
- 一个关于下载文件的代码,保证不出现中文乱码!
- FTP4j下载带有中文的文件时 出现乱码解决方案
- 文件下载出现中文乱码问题
- PHP 下载文件(中文不乱码)
- 关于Myeclipse出现 java文件中文乱码问题的解决方案.
- Java: IE & Firefox下载文件中文乱码的兼容代码
- 关于文件下载出现乱码问题
- 关于myeclipse中导入文件代码出现乱码的问题
- PHP中的字符串截取函数,取子符串,以保证中文不出现乱码
- 为什么中文需要2次encodeURI(url)才能保证不出现乱码
- 如何利用代码从网站上获取一个文件的大小,并且下载时不出现保存提示框
- 文件下载及文件名为中文的时候各个浏览器出现乱码的解决方案
- 关于Response出现中文乱码的解决方案
- 关于Navicat和MYSQL字符集不统一出现的中文乱码问题
- 关于Navicat和MYSQL字符集不统一出现的中文乱码问题
- 关于Struts2下载的文件名中文乱码
- 文件下载中文乱码
- asp.net 下载文件 防止中文文件名出现乱码
- xp系统中的隐藏文件不能显示 解决方案
- 开源SOA公司WSO2发布最新数据服务产品
- 负载均衡技术应用介绍
- EzMap plugin for Windows Live Writer v1.0
- 郁闷
- 一个关于下载文件的代码,保证不出现中文乱码!
- DIY
- 心中的那片土地
- CSV
- 超级终端发送手机短信
- PowerDesinger 从数据库中依赖反转出来的PDM修改。修改显示名字 将注释加到PDM工程
- 闲来无事写了个在线RSS阅读器
- kernel32.dll
- 图书馆管理系统