C#网页点击按钮,提供文件下载功能的问题....

protectedvoidButton3_Click(objectsender,EventArgse){stringcl=this.ClassList.SelectedV... protected void Button3_Click(object sender, EventArgs e)
{
string cl = this.ClassList.SelectedValue.ToString();
string fileName = cl + ".doc";
this.Response.Clear();
this.Response.ContentType = "application/msword";
this.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
this.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
this.Response.WriteFile("D:\\Project\\TopicCardPrint\\TopicCardPrint\\TopicCardPrint\\TopicCard\\" + cl + "原版.doc");
this.Response.Flush();
this.Response.End();
}

360极速浏览器ie模式和ie9模式都是第一幅图的情况,直接使用ie9就是第二幅图的情况.但我不管用哪个浏览器在邮箱里进行附件下载都是正常可以使用的..所以我觉得是我代码哪里有问题...
http://zhidao.baidu.com/question/35895818.html这个问题里的4个方法我都用过了...都是上述情况....
展开
 我来答
Ben
2013-04-22 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
private void Button1_Click(object sender, System.EventArgs e)
{
string sFileName = Server.MapPath("");//在这里请先读取您的文件
FileStream fileStream=new FileStream(sFileName,FileMode.Open);
long fileSize = fileStream.Length;
byte[] fileBuffer=new byte[fileSize];
fileStream.Read(fileBuffer, 0, (int)fileSize);
//如果不写fileStream.Close()语句,用户在下载过程中选择取消,将不能再次下载
fileStream.Close();
Context.Response.ContentType="application/octet-stream";
Context.Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(sFileName,Encoding.UTF8 ));
Context.Response.AddHeader("Content-Length",fileSize.ToString());
Context.Response.BinaryWrite(fileBuffer);
Context.Response.End();
Context.Response.Close();
}

   this.Response.WriteFile

  this.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);

这两个东西.您这么用虽然没有错误.但是并不推荐,因为在某些特殊的情况下.这样做会导致一些奇怪的错误出现,试试上述的方法吧.如果有问题.您可以继续追问.或直接向我求助

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式