Asp.net直接保存文件到客户端

     通常的文件下载是用跳出窗口实现的,但是有个问题,就是会被广告拦截软件直接拦截掉,另我非常的头痛,于是寻找更好的解决方法.看了用Response.BinaryWrite写文件流一文之后觉得确实可以如此。 如下代码实现了此功能,解决了文件格式问题(就是只将流输出,但无法正确识别文件格式),并且从注册表读取文件的ContentType 。

 1 ''' <summary>
2 ''' 下载文件
3 ''' </summary>
4 ''' <param name="filename">文件物理地址</param>
5 Protected  Sub DownloadFile(ByVal filename As String)
6
7 Dim saveFileName As String =  "test.xls"
8 Dim intStart As Integer =  filename.LastIndexOf("//")+1
9 saveFileName = filename.Substring(intStart,filename.Length-intStart)
10
11 Dim fi As System.IO.FileInfo = New System.IO.FileInfo(filename)
12 Dim fileextname As String = fi.Extension
13 Dim DEFAULT_CONTENT_TYPE As String =  "application/unknown"
14 Dim regkey As RegisTryKey,fileextkey As RegisTryKey
15 Dim filecontenttype As String
16 Try
17 regkey=RegisTry.ClassesRoot
18 fileextkey=regkey.OpenSubKey(fileextname)
19 filecontenttype=fileextkey.GetValue("Content Type",DEFAULT_CONTENT_TYPE).ToString()
20 Catch
21 filecontenttype=DEFAULT_CONTENT_TYPE
22 End Try
23
24
25 Response.Clear()
26 Response.Charset = "utf-8"
27 Response.Buffer= True
28 Me.EnableViewState = False
29 Response.ContentEncoding = System.Text.Encoding.UTF8
30
31 Response.AppendHeader("Content-Disposition","attachment;filename=" + saveFileName)
32 Response.ContentType=filecontenttype
33
34 Response.WriteFile(filename)
35 Response.Flush()
36 Response.Close()
37
38 Response.End()
39 End Sub

<script type=text/javascript> var arrBaiduCproConfig=new Array(); arrBaiduCproConfig['uid'] =327977; arrBaiduCproConfig['n'] ='web3_cpr'; arrBaiduCproConfig['tm'] ='22'; arrBaiduCproConfig['cm'] ='72'; arrBaiduCproConfig['um'] ='22'; arrBaiduCproConfig['w'] ='728'; arrBaiduCproConfig['h'] ='90'; arrBaiduCproConfig['wn'] ='4'; arrBaiduCproConfig['hn'] ='1'; arrBaiduCproConfig['ta'] ='right'; arrBaiduCproConfig['tl'] ='bottom'; arrBaiduCproConfig['bu'] ='0'; arrBaiduCproConfig['bd'] ='#trans'; arrBaiduCproConfig['bg'] ='#trans'; arrBaiduCproConfig['tt'] ='#0000ff'; arrBaiduCproConfig['ct'] ='#444444'; arrBaiduCproConfig['url'] ='#008000'; arrBaiduCproConfig['bdl'] ='#000000'; arrBaiduCproConfig['rad'] =1; </script> <script src="踢西工作室--Asp_net直接保存文件到客户端.files/ui.js" type=text/javascript charset=gbk> </script> <script type=text/javascript> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值