要用ASP.NET实现邮箱中附件下载的功能

 搞了好久也没有搞通,网上有很多事例都是一样的:IE支持的文件就会直接打开,而其它的像ZIP之类的文件不识别,就会弹出下载或打开的对话框。
突然一想是不是有什么文件筛选的问题,果然在写文件之前将Filter清除就可以像附件一样使用了。

VB.net:
  Dim filename As String =  "a.txt"
 
        If filename <> "" Then
 
            Dim path As String =  Server.MapPath(filename)
 
            Dim file As System.IO.FileInfo =  New System.IO.FileInfo(path)
 
            If file.Exists Then
 
                Response.Clear()
 
                Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name)
 
                Response.AddHeader("Content-Length", file.Length.ToString())
 
                Response.ContentType = "application/octet-stream"
 
                Response.Filter.Close()
 
               ' Response.WriteFile(file.FullName)

                Response.TransmitFile(file.FullName)'上面那行代码,改成这样,将不再从内存中缓冲。而是直接读HTTP流。面对大文件,不再害怕。
 
 
                Response.End()
 
            Else
 
                Response.Write("This file does not exist.")
 
            End If
 
        End If

----------------------------------------------------------------
c#:

   string filename = "a.txt";

        if (filename != "")
        {

            string path = Server.MapPath(filename);

            System.IO.FileInfo file = new System.IO.FileInfo(path);

            if (file.Exists)
            {

                Response.Clear();

                Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);

                Response.AddHeader("Content-Length", file.Length.ToString());

                Response.ContentType = "application/octet-stream";

                Response.Filter.Close();

                Response.WriteFile(file.FullName);

              
                Response.End();

            }

            else
            {

                Response.Write("This file does not exist.");

            }

        }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值