从服务器上边下载文件到客户机的实现.
来源:互联网 发布:nginx 默认跳转页面 编辑:程序博客网 时间:2024/04/26 05:10
Response.Clear();
Response.ClearHeaders();
Response.Buffer=false;
Response.AppendHeader("Content-Disposition","attachment;filename=" + System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(ls_path3)));
Response.AppendHeader("Content-Length",fi.Length.ToString());
Response.ContentType="application/octet-stream";
Response.WriteFile(ls_path3);
Response.Flush();
Response.End();
经测试,在header中的filename 中文只能18个,英文165个
按中文一个在UTF8里是9个字节( System.Text.UnicodeEncoding.UTF8.GetByteCount()方法获取每个中文为3个字符),应该是18*9=162<165)
因此在长中文文件名下载时做以下处理:
当文件名GetByteCount大于57时(没有判断中英文混合的情况)则截取文件名
Dim FullFileName As String = Server.MapPath("qbuttom3.aspx/../../") & "temp/" & FileName
If System.IO.File.Exists(FullFileName) = True Then
Dim strLenth As Integer = System.Text.UnicodeEncoding.UTF8.GetByteCount(ModName)
If strLenth > 57 Then
ModName = ModName.Substring(0, 17) + "_.xls"
End If
Response.Clear()
Response.ContentType = "application/vnd.ms_excel"
Response.AppendHeader("Content-Disposition", "attachment; filename=" & Server.UrlEncode(ModName))
Response.Flush()
Response.WriteFile(FullFileName)
End If
注:
许多情况下当程序采用了Server.HTMLEncode 和 Server.URLEncode 先对中文进行过编码以后,系统依然显示乱码,根据微软的解释,这种情况跟IIS有关,微软提供的原因是未打Pack3的IIS 假定每个字符两个字节,而某些 UTF8 字符使用三个字节。这样,所创建的缓冲区太小,无法容纳这些字节,导致产生乱码,解决方法就是给IIS打Pack3
下载地址如下 :
立即下载 Q249831_w2k_sp3_x86_EN.exe
中文(简体):
立即下载 Q249831_w2k_sp3_x86_CN.exe
- 从服务器上边下载文件到客户机的实现.
- 实现web服务器的任意文件下载到客户机
- 上传文件到服务器,从服务器下载文件到本地
- 从服务器下载文件到本机
- Java 从服务器下载文件到本地
- Java 从服务器下载文件到本地
- Java从服务器下载文件到本地
- 配置客户机到服务器的对象持久性
- 大数据时代,计算模式从客户机/服务器到节点的转变
- 实现从服务器下载文件代码
- php实现从服务器下载文件
- 从远程服务器下载文件到本地服务器
- 实现服务器和客户机的交互
- scp从服务器下载文件到本地或从本地上传文件到服务器
- 从服务器下载文件的方法
- 从服务器下载Excel文件的示例
- 解决从服务器下载文件 的问题
- 从服务器下载文件的方法
- 2005精品书籍-go go go
- JAVA排序
- ASP.NET中上传文件到数据库
- http://www.mscenter.edu.cn/blog/posts.html?cateid=93
- VC常用数据类型使用转换详解
- 从服务器上边下载文件到客户机的实现.
- 揭开NTFS下真正的隐藏文件--'流'的奥秘
- 微软即将发布杀毒软件 可通过自动更新下载
- 探索NTFS
- 以平静的心接受与自己意愿相违背的事
- lastic Logic 展示的电子纸能弯曲
- 如果魔鬼诱惑你
- 異常退出jboss3.2.3後再啟動時出現sql連接異常,如sql已連接等錯誤拋出時的解決方法
- eclipse技巧 [摘]