帝国论坛帝国网站管理系统交流区帝国CMS使用交流IIS实现ie点击txt文件直接下载而不是打开【需要有服务器或vps,能直接设置iis】 【本版专题贴子】  
主题:IIS实现ie点击txt文件直接下载而不是打开【需要有服务器或vps,能直接设置iis】 [加入收藏夹]   

皮皮虎
用户头衔:进士

精华贴   :0
发贴数   :509
经验值   :2061
注册时间:2008-02-10
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
IIS实现ie点击txt文件直接下载而不是打开【需要有服务器或vps,能直接设置iis】
好多人说 将iis中 txt的MIME类型设置为 application/octet-stream ,这是误人子弟啊,这个方法针对IE是无效的...

如果不需要防盗链功能的话可以使用下面的方式进行下载

<?php
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($_GET['url']));
readfile($filename);
?>


但是我想整合防盗链软件,以附加vsid方式实现防盗链(只有这样的防盗链才能使用迅雷下载并且不会被迅雷盗链)。如果这样,上面的方法就不行了(我的半瓶子php水平是做不出来)。

找到了一篇微软的文章,通过在iis的“自定义http头”(不是mime)中 增加 Content-Type:application/force-download 来实现强制下载,这样会导致网站的所有文件都会被下载,甚至是.html .php .jpg 等等。

所以,我新建了个iis站点, down.01book.net ,同样是指向 跟 www.01book.net 同样的文件目录

这样就保证了
www.01book.net/d/file/xx/xx/xxx.txt
down.01book.net/d/file/xx/xx/xxx.txt
两个地址相同的目录结构,省去了修改地址的麻烦,后台上传后生成的下载地址也直接能用。等于是两个地址都同样可以访问同一个网站(并非同一站点绑定两个域名,而是不同的两个iis站点指向同一个网站文件夹)。

之后,在down.01book.net 这个iis站点的 "自定义http头"中增加
Content-Type:application/force-download 强制该iis站点下的文件为下载模式,这样txt文件就不会被ie直接打开。
Content-Disposition:attachment 这一行保证了,输入 down.01book.net/index.html 时不会显示网站内容。通过down.01book.net这个域名只能用来下载文件。

把网站的下载地址前缀统一改为 down.01book.net,或者在“最终下载地址模板”的 [!--true.down.url--]标签前面加上 down.01book.net 这个二级域名。就可以设置通过这个二级域名来下载txt文件了。

我的最终下载页面

http://www.01book.net/e/DownSys/DownSoft/?classid=1&id=147&pathid=0

上传以下图片:





2010-06-10 02:50:38 已设置保密 顶部 回复 引用 报告 编辑 删除

gaoanw
用户头衔:秀才

精华贴   :0
发贴数   :70
经验值   :484
注册时间:2010-04-30
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

还不是完美的办法,要新建一个站点。。。
为什么DZ论坛 上传的TXT附件
就直接实现不下载而不是打开呢????




2010-06-10 06:44:42 已设置保密 顶部 回复 引用 报告 编辑 删除

饮水思源
用户头衔:探花

精华贴   :0
发贴数   :4252
经验值   :10215
注册时间:2007-05-29
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

支持一下,还有一种方法就是地址前缀下载方式改成read

[该贴被修改 1 次,最后修改时间 2010-06-10 08:12:27 ]



2010-06-10 08:12:20 已设置保密 顶部 回复 引用 报告 编辑 删除

皮皮虎
用户头衔:进士

精华贴   :0
发贴数   :509
经验值   :2061
注册时间:2008-02-10
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

原帖由 gaoanw 于 2010-06-10 06:44:42 发表
还不是完美的办法,要新建一个站点。。。
为什么DZ论坛 上传的TXT附件
就直接实现不下载而不是打开呢????

那用的 php 文件跳转方式

而我说的是 <a her f=http://xxxx.com/xxxx.txt>下载</a>  直链 txt 文件的方式




2010-06-10 08:12:52 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1