【问题标题】:Getting the default file extension for a content-type in JavaScript?在 JavaScript 中获取内容类型的默认文件扩展名?
【发布时间】:2012-02-06 18:03:51
【问题描述】:

如果我有一个内容类型,我怎样才能得到它的默认文件扩展名?

例如,给定其中一种内容类型,我应该得到以下文件扩展名:

+------------------------+----------------+
|      Content-Type      | File Extension |
+------------------------+----------------+
| text/plain             | .txt           |
| application/javascript | .js            |
| application/gzip       | .gz            |
+------------------------+----------------+

如果无法在 JavaScript 中自动获取这些扩展名,我的下一个解决方案是在 JavaScript 数组中创建内容类型和文件扩展名之间的简单关系。因此,我会接受一个包含最常见内容类型和文件扩展名的简单表/数据库的答案。

【问题讨论】:

    标签: javascript filenames content-type


    【解决方案1】:

    来自 nginx

    types {
        text/html                             html htm shtml;
        text/css                              css;
        text/xml                              xml;
        image/gif                             gif;
        image/jpeg                            jpeg jpg;
        application/x-javascript              js;
        application/atom+xml                  atom;
        application/rss+xml                   rss;
    
        text/mathml                           mml;
        text/plain                            txt;
        text/vnd.sun.j2me.app-descriptor      jad;
        text/vnd.wap.wml                      wml;
        text/x-component                      htc;
    
        image/png                             png;
        image/tiff                            tif tiff;
        image/vnd.wap.wbmp                    wbmp;
        image/x-icon                          ico;
        image/x-jng                           jng;
        image/x-ms-bmp                        bmp;
        image/svg+xml                         svg;
        image/webp                            webp;
    
        application/java-archive              jar war ear;
        application/mac-binhex40              hqx;
        application/msword                    doc;
        application/pdf                       pdf;
        application/postscript                ps eps ai;
        application/rtf                       rtf;
        application/vnd.ms-excel              xls;
        application/vnd.ms-powerpoint         ppt;
        application/vnd.wap.wmlc              wmlc;
        application/vnd.google-earth.kml+xml  kml;
        application/vnd.google-earth.kmz      kmz;
        application/x-7z-compressed           7z;
        application/x-cocoa                   cco;
        application/x-java-archive-diff       jardiff;
        application/x-java-jnlp-file          jnlp;
        application/x-makeself                run;
        application/x-perl                    pl pm;
        application/x-pilot                   prc pdb;
        application/x-rar-compressed          rar;
        application/x-redhat-package-manager  rpm;
        application/x-sea                     sea;
        application/x-shockwave-flash         swf;
        application/x-stuffit                 sit;
        application/x-tcl                     tcl tk;
        application/x-x509-ca-cert            der pem crt;
        application/x-xpinstall               xpi;
        application/xhtml+xml                 xhtml;
        application/zip                       zip;
    
        application/octet-stream              bin exe dll;
        application/octet-stream              deb;
        application/octet-stream              dmg;
        application/octet-stream              eot;
        application/octet-stream              iso img;
        application/octet-stream              msi msp msm;
    
        audio/midi                            mid midi kar;
        audio/mpeg                            mp3;
        audio/ogg                             ogg;
        audio/x-realaudio                     ra;
    
        video/3gpp                            3gpp 3gp;
        video/mpeg                            mpeg mpg;
        video/quicktime                       mov;
        video/x-flv                           flv;
        video/x-mng                           mng;
        video/x-ms-asf                        asx asf;
        video/x-ms-wmv                        wmv;
        video/x-msvideo                       avi;
        video/mp4                             m4v mp4;
    }
    

    【讨论】:

    • 虽然答案显示了哪些扩展与不同的 mime 类型匹配,但没有说明如何通过 JavaScript 获取此信息。考虑添加您的作品吗?
    【解决方案2】:

    对于 Node 应用程序,现在有一个更新的答案,即使用mime-types NPM package,例如:

    var mime = require('mime-types'),
        fileExtension = mime.extension('text/plain');
    

    【讨论】:

      【解决方案3】:

      有一个最好的包是

      mime-db lib npm

      var mimeDb = require("mime-db")
      

      用法(返回对象)

      var data = mimeDb['image/x-icon']
      console.log(data)
      

      获取扩展

       console.log(data.extensions[0])
      

      另一种是从 mime-db 派生的 mime-types

      mime types

      但是当我使用 mime 类型时,在获取扩展图像/x-icon 时会出现一些小错误

      【讨论】:

        猜你喜欢
        • 2013-01-24
        • 2014-05-30
        • 2011-05-27
        • 2011-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-08
        • 2014-02-07
        相关资源
        最近更新 更多