现在用户上传了很多附件(不限制是什么文件类型的),这些文件都是以二进制的形式存储在数据库中的一张表中的。。现在我想让用户在浏览附件信息的时候时候直接从数据库中读取文件内容,然后直接让他下载到客户端。。第一次我没有设置MIME类型
直接用
Response.Clear();
Response.BinaryWrite(m_Attachement.FileBin);
Response.End();
这样txt格式的附件能将内容直接显示在浏览器中,其它的为乱码后来我加了一句代码
Response.Clear();
Response.ContentType = m_Attachement.ContentType;
Response.BinaryWrite(m_Attachement.FileBin);
Response.End();
这时出现了很多异常
最后我使用下面的代码
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + m_Attachement.FileAttachmentName);
Response.Charset = "GB2312";
Response.BinaryWrite(m_Attachement.FileBin);
Response.End();
能下载了,但是存在两个问题,一个问题是零长度的文档(比如我在桌面上随便建立一个空的txt文档),能传到数据库里面去,但是读出来的时候会出现异常,另外一个问题是如果文件名为中文的话,下载的提示框中保存文件名显示的是乱码。高人能给指点一下不???
直接用
Response.Clear();
Response.BinaryWrite(m_Attachement.FileBin);
Response.End();
这样txt格式的附件能将内容直接显示在浏览器中,其它的为乱码后来我加了一句代码
Response.Clear();
Response.ContentType = m_Attachement.ContentType;
Response.BinaryWrite(m_Attachement.FileBin);
Response.End();
这时出现了很多异常
最后我使用下面的代码
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + m_Attachement.FileAttachmentName);
Response.Charset = "GB2312";
Response.BinaryWrite(m_Attachement.FileBin);
Response.End();
能下载了,但是存在两个问题,一个问题是零长度的文档(比如我在桌面上随便建立一个空的txt文档),能传到数据库里面去,但是读出来的时候会出现异常,另外一个问题是如果文件名为中文的话,下载的提示框中保存文件名显示的是乱码。高人能给指点一下不???
解决方案 »
- JS 去字符问题
- IIS怎么总是显示旧的网站内容?新的已经放上去了
- Microsoft Visual SourceSafe服务器配置问题
- ajax异步调用找不出问题
- drowdownlist"请选择"
- 我的table中的文字没有到右边界就自动换行是怎么回事?
- .net初学者问题
- 100M支持asp及asp.net的空间加一个国际域名300rmb
- 该死的drowndownlist把我的菜单遮掉了。我怎样才能把我的菜单总是保持在其它控件的上面呢。我设了z-index对dropdownlist不起作用.
- 如何在web程序中操作本地机器串口
- 是大虾就进来溜溜哦!
- 复选框选择问题 javascript实现 在线等待
改这行:Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(m_Attachement.FileAttachmentName));