V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jacy
V2EX  ›  问与答

关于服务器上MIME的设置

  •  
  •   jacy · 2012-12-03 21:16:09 +08:00 · 2846 次点击
    这是一个创建于 4365 天前的主题,其中的信息可能已经有所发展或是发生改变。
    为了确保安全,通过网页上传的文件不认识的扩展名通通改为.rename扩展名,接着设置MIME类型(是IIS服务器,填写扩展名.rename,mine类型随便填的)。可是设置之后虽然能识别链接了(不设置的话是404),但是是浏览器直接打开,而不是文件下载的形式。应该怎样设置呢?(虽然另存为可以解决,但是这样不太友好)
    6 条回复    1970-01-01 08:00:00 +08:00
    11138
        1
    11138  
       2012-12-03 21:23:31 +08:00   ❤️ 1
    试一下 application/??? 例如 application/x-tar 这样的MIME类型。
    luin
        2
    luin  
       2012-12-03 21:35:09 +08:00
    set('Content-Disposition', 'attachment; filename="' + basename(filename) + '"')
    jacy
        3
    jacy  
    OP
       2012-12-03 21:39:04 +08:00
    @11138 application可行,谢谢!
    chenz
        4
    chenz  
       2012-12-04 00:01:25 +08:00
    @11138 的实际上还是依赖浏览器对MIME的处理。例如如果你用一个gzip的mimetype,如果浏览器支持对gzip直接打开,那么就不会是强制下载。一个比较典型的例子是pdf这个mimetype,旧的浏览器如IE6是对其下载,而近年来新出的浏览器,例如chrome则是直接打开

    @luin 的做法是比较标准的做法(关于这个可以从rfc 2616看起),明确指定要浏览器下载,而不是自行处理。所以即使浏览器以后更新也不需要担心。

    @jacy
    11138
        5
    11138  
       2012-12-04 00:15:44 +08:00
    @chenz 你的解释更详细,谢谢。最终都是要看浏览器/客户自己的设置。所以application/???后面最好写一个未知的,防止被客户电脑相关的程序接管。
    luin 的做法是脚本编程实现,并不符合楼主的问题哦。
    CoX
        6
    CoX  
       2012-12-04 02:18:28 +08:00
    我这种情况下一般设置为 application/octet-stream ,这是可执行文件的类型,会提示下载的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   806 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:05 · PVG 06:05 · LAX 14:05 · JFK 17:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.