我在这里指定了一个非常类似的需求。
我需要有用户的浏览器手动启动下载时$('a#someID').click();
但是我不能用窗户。Href方法,因为它将当前页面内容替换为您试图下载的文件。
相反,我想在新窗口/标签中打开下载。这怎么可能呢?
我在这里指定了一个非常类似的需求。
我需要有用户的浏览器手动启动下载时$('a#someID').click();
但是我不能用窗户。Href方法,因为它将当前页面内容替换为您试图下载的文件。
相反,我想在新窗口/标签中打开下载。这怎么可能呢?
当前回答
为了改进Imagine Breaker的答案,FF和IE支持:
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
function downloadURI(uri, name) {
var link = document.createElement("a");
link.download = name;
link.href = uri;
link.dispatchEvent(evt);
}
换句话说,只需使用dispatchEvent函数而不是click();
其他回答
在尝试下载文件时,会发生很多小事情。浏览器之间的不一致性本身就是一场噩梦。我最终使用了这个很棒的小图书馆。 https://github.com/rndme/download
它的优点是它的灵活性,不仅url,而且客户端数据你想要下载。
文本字符串 文本dataURL 文本的团 文本数组 html字符串 html的团 ajax回调 二进制文件
2019现代浏览器更新
这是我现在推荐的方法,但有几点注意事项:
需要一个相对现代的浏览器 如果文件非常大,您可能会采取与原始方法(iframe和cookie)类似的方法,因为以下一些操作可能会消耗至少与正在下载的文件相同大的系统内存和/或其他有趣的CPU副作用。
fetch('https://jsonplaceholder.typicode.com/todos/1') .then(resp => resp.blob()) .then(blob => { const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.style.display = 'none'; a.href = url; // the filename you want a.download = 'todo-1.json'; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); alert('your file has downloaded!'); // or you know, something with better UX... }) .catch(() => alert('oh no!'));
2012年原创的jQuery/iframe/cookie的方法
我已经创建了jQuery文件下载插件(演示)(GitHub),这也可以帮助您的情况。它的工作原理与iframe非常相似,但有一些很酷的功能,我发现相当方便:
Very easy to setup with nice visuals (jQuery UI Dialog, but not required), everything is tested too User never leaves the same page they initiated a file download from. This feature is becoming crucial for modern web applications successCallback and failCallback functions allow for you to be explicit about what the user sees in either situation In conjunction with jQuery UI a developer can easily show a modal telling the user that a file download is occurring, disband the modal after the download starts or even inform the user in a friendly manner that an error has occurred. See the Demo for an example of this.
下面是一个简单的用例演示,使用带有承诺的插件源代码。演示页面还包括许多其他“更好的用户体验”示例。
$.fileDownload('some/file.pdf')
.done(function () { alert('File download a success!'); })
.fail(function () { alert('File download failed!'); });
您可以简单地使用HTML中的Download属性。使用优秀的Javascript,你可以使用这个功能直接下载文件。锚标记的download属性应该指向要下载的文件所在的链接。
首先,将URL指向资源路径:
var url = 'your url goes here';
创建一个锚标记,需要的属性如下所示:
var elem = document.createElement('a');
elem.href = url;
elem.download = url;
elem.id="downloadAnchor";
将锚标记附加到网页的body元素。
document.body.appendChild(elem);
现在以编程方式触发单击事件。点击锚标记将触发下载。
$('#downloadAnchor').click();
把它们放在一起:
var url = 'your url goes here';
var elem = document.createElement('a');
elem.href = url;
elem.download = url;
elem.id="downloadAnchor";
document.body.appendChild(elem);
$('#downloadAnchor').click();
附加信息:上面的代码没有什么奇特的,只是从Chrome Devtools的控制台工作的客户端JavaScript,但功能强大,也开辟了许多可能性,如网页爬行。
例如,下面这段在Devtools控制台中执行的代码将在一个新的选项卡中打开页面中的所有链接:只要进入这个网页,打开Devtools并在浏览器控制台中运行这个脚本,就可以看到JavaScript的强大威力了。(注意:下面的代码仅用于教学目的。)
确保你为该网站启用了弹出窗口,否则你的锚点点击将被默认的弹出窗口拦截器禁用。
var links = document.getElementsByClassName("_3ATBKe");
for(var i=0;i<links.length;i++){
var title = document.getElementsByClassName("_3ATBKe")[i].firstElementChild.firstElementChild.innerText.replaceAll('|','-').replaceAll(':','x');
console.log('Opening..'+title);
links[i].firstElementChild.click();
}
注意:这不仅仅局限于点击锚,你可以下载几乎任何你在你的网页上找到的东西。如果某些东西(图像、音频、视频)加载到你的网页上,你可以编写一个脚本来下载它,即使UI没有提供给你。
我建议您使用mousedown事件,它被称为BEFORE the click事件。这样,浏览器就可以自然地处理点击事件,从而避免了任何奇怪的代码:
(function ($) {
// with this solution, the browser handles the download link naturally (tested in chrome and firefox)
$(document).ready(function () {
var url = '/private/downloads/myfile123.pdf';
$("a#someID").on('mousedown', function () {
$(this).attr("href", url);
});
});
})(jQuery);
最完整的和工作(测试)代码下载数据为FireFox, Chrome和IE代码如下。假设数据是在texarea字段,有id='textarea_area'和filename是文件的名称,数据将被下载。
function download(filename) {
if (typeof filename==='undefined') filename = ""; // default
value = document.getElementById('textarea_area').value;
filetype="text/*";
extension=filename.substring(filename.lastIndexOf("."));
for (var i = 0; i < extToMIME.length; i++) {
if (extToMIME[i][0].localeCompare(extension)==0) {
filetype=extToMIME[i][1];
break;
}
}
var pom = document.createElement('a');
pom.setAttribute('href', 'data: '+filetype+';charset=utf-8,' + '\ufeff' + encodeURIComponent(value)); // Added BOM too
pom.setAttribute('download', filename);
if (document.createEvent) {
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) { // IE
blobObject = new Blob(['\ufeff'+value]);
window.navigator.msSaveBlob(blobObject, filename);
} else { // FF, Chrome
var event = document.createEvent('MouseEvents');
event.initEvent('click', true, true);
pom.dispatchEvent(event);
}
} else if( document.createEventObject ) { // Have No Idea
var evObj = document.createEventObject();
pom.fireEvent( 'onclick' , evObj );
} else { // For Any Case
pom.click();
}
}
然后调用
<a href="javascript:download();">Download</a>
下载初始化。
为下载对话框设置正确的MIME类型的数组可以如下:
// ----------------------- Extensions to MIME --------- //
// List of mime types
// combination of values from Windows 7 Registry and
// from C:\Windows\System32\inetsrv\config\applicationHost.config
// some added, including .7z and .dat
var extToMIME = [
[".323", "text/h323"],
[".3g2", "video/3gpp2"],
[".3gp", "video/3gpp"],
[".3gp2", "video/3gpp2"],
[".3gpp", "video/3gpp"],
[".7z", "application/x-7z-compressed"],
[".aa", "audio/audible"],
[".AAC", "audio/aac"],
[".aaf", "application/octet-stream"],
[".aax", "audio/vnd.audible.aax"],
[".ac3", "audio/ac3"],
[".aca", "application/octet-stream"],
[".accda", "application/msaccess.addin"],
[".accdb", "application/msaccess"],
[".accdc", "application/msaccess.cab"],
[".accde", "application/msaccess"],
[".accdr", "application/msaccess.runtime"],
[".accdt", "application/msaccess"],
[".accdw", "application/msaccess.webapplication"],
[".accft", "application/msaccess.ftemplate"],
[".acx", "application/internet-property-stream"],
[".AddIn", "text/xml"],
[".ade", "application/msaccess"],
[".adobebridge", "application/x-bridge-url"],
[".adp", "application/msaccess"],
[".ADT", "audio/vnd.dlna.adts"],
[".ADTS", "audio/aac"],
[".afm", "application/octet-stream"],
[".ai", "application/postscript"],
[".aif", "audio/x-aiff"],
[".aifc", "audio/aiff"],
[".aiff", "audio/aiff"],
[".air", "application/vnd.adobe.air-application-installer-package+zip"],
[".amc", "application/x-mpeg"],
[".application", "application/x-ms-application"],
[".art", "image/x-jg"],
[".asa", "application/xml"],
[".asax", "application/xml"],
[".ascx", "application/xml"],
[".asd", "application/octet-stream"],
[".asf", "video/x-ms-asf"],
[".ashx", "application/xml"],
[".asi", "application/octet-stream"],
[".asm", "text/plain"],
[".asmx", "application/xml"],
[".aspx", "application/xml"],
[".asr", "video/x-ms-asf"],
[".asx", "video/x-ms-asf"],
[".atom", "application/atom+xml"],
[".au", "audio/basic"],
[".avi", "video/x-msvideo"],
[".axs", "application/olescript"],
[".bas", "text/plain"],
[".bcpio", "application/x-bcpio"],
[".bin", "application/octet-stream"],
[".bmp", "image/bmp"],
[".c", "text/plain"],
[".cab", "application/octet-stream"],
[".caf", "audio/x-caf"],
[".calx", "application/vnd.ms-office.calx"],
[".cat", "application/vnd.ms-pki.seccat"],
[".cc", "text/plain"],
[".cd", "text/plain"],
[".cdda", "audio/aiff"],
[".cdf", "application/x-cdf"],
[".cer", "application/x-x509-ca-cert"],
[".chm", "application/octet-stream"],
[".class", "application/x-java-applet"],
[".clp", "application/x-msclip"],
[".cmx", "image/x-cmx"],
[".cnf", "text/plain"],
[".cod", "image/cis-cod"],
[".config", "application/xml"],
[".contact", "text/x-ms-contact"],
[".coverage", "application/xml"],
[".cpio", "application/x-cpio"],
[".cpp", "text/plain"],
[".crd", "application/x-mscardfile"],
[".crl", "application/pkix-crl"],
[".crt", "application/x-x509-ca-cert"],
[".cs", "text/plain"],
[".csdproj", "text/plain"],
[".csh", "application/x-csh"],
[".csproj", "text/plain"],
[".css", "text/css"],
[".csv", "text/csv"],
[".cur", "application/octet-stream"],
[".cxx", "text/plain"],
[".dat", "application/octet-stream"],
[".datasource", "application/xml"],
[".dbproj", "text/plain"],
[".dcr", "application/x-director"],
[".def", "text/plain"],
[".deploy", "application/octet-stream"],
[".der", "application/x-x509-ca-cert"],
[".dgml", "application/xml"],
[".dib", "image/bmp"],
[".dif", "video/x-dv"],
[".dir", "application/x-director"],
[".disco", "text/xml"],
[".dll", "application/x-msdownload"],
[".dll.config", "text/xml"],
[".dlm", "text/dlm"],
[".doc", "application/msword"],
[".docm", "application/vnd.ms-word.document.macroEnabled.12"],
[".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"],
[".dot", "application/msword"],
[".dotm", "application/vnd.ms-word.template.macroEnabled.12"],
[".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"],
[".dsp", "application/octet-stream"],
[".dsw", "text/plain"],
[".dtd", "text/xml"],
[".dtsConfig", "text/xml"],
[".dv", "video/x-dv"],
[".dvi", "application/x-dvi"],
[".dwf", "drawing/x-dwf"],
[".dwp", "application/octet-stream"],
[".dxr", "application/x-director"],
[".eml", "message/rfc822"],
[".emz", "application/octet-stream"],
[".eot", "application/octet-stream"],
[".eps", "application/postscript"],
[".etl", "application/etl"],
[".etx", "text/x-setext"],
[".evy", "application/envoy"],
[".exe", "application/octet-stream"],
[".exe.config", "text/xml"],
[".fdf", "application/vnd.fdf"],
[".fif", "application/fractals"],
[".filters", "Application/xml"],
[".fla", "application/octet-stream"],
[".flr", "x-world/x-vrml"],
[".flv", "video/x-flv"],
[".fsscript", "application/fsharp-script"],
[".fsx", "application/fsharp-script"],
[".generictest", "application/xml"],
[".gif", "image/gif"],
[".group", "text/x-ms-group"],
[".gsm", "audio/x-gsm"],
[".gtar", "application/x-gtar"],
[".gz", "application/x-gzip"],
[".h", "text/plain"],
[".hdf", "application/x-hdf"],
[".hdml", "text/x-hdml"],
[".hhc", "application/x-oleobject"],
[".hhk", "application/octet-stream"],
[".hhp", "application/octet-stream"],
[".hlp", "application/winhlp"],
[".hpp", "text/plain"],
[".hqx", "application/mac-binhex40"],
[".hta", "application/hta"],
[".htc", "text/x-component"],
[".htm", "text/html"],
[".html", "text/html"],
[".htt", "text/webviewhtml"],
[".hxa", "application/xml"],
[".hxc", "application/xml"],
[".hxd", "application/octet-stream"],
[".hxe", "application/xml"],
[".hxf", "application/xml"],
[".hxh", "application/octet-stream"],
[".hxi", "application/octet-stream"],
[".hxk", "application/xml"],
[".hxq", "application/octet-stream"],
[".hxr", "application/octet-stream"],
[".hxs", "application/octet-stream"],
[".hxt", "text/html"],
[".hxv", "application/xml"],
[".hxw", "application/octet-stream"],
[".hxx", "text/plain"],
[".i", "text/plain"],
[".ico", "image/x-icon"],
[".ics", "application/octet-stream"],
[".idl", "text/plain"],
[".ief", "image/ief"],
[".iii", "application/x-iphone"],
[".inc", "text/plain"],
[".inf", "application/octet-stream"],
[".inl", "text/plain"],
[".ins", "application/x-internet-signup"],
[".ipa", "application/x-itunes-ipa"],
[".ipg", "application/x-itunes-ipg"],
[".ipproj", "text/plain"],
[".ipsw", "application/x-itunes-ipsw"],
[".iqy", "text/x-ms-iqy"],
[".isp", "application/x-internet-signup"],
[".ite", "application/x-itunes-ite"],
[".itlp", "application/x-itunes-itlp"],
[".itms", "application/x-itunes-itms"],
[".itpc", "application/x-itunes-itpc"],
[".IVF", "video/x-ivf"],
[".jar", "application/java-archive"],
[".java", "application/octet-stream"],
[".jck", "application/liquidmotion"],
[".jcz", "application/liquidmotion"],
[".jfif", "image/pjpeg"],
[".jnlp", "application/x-java-jnlp-file"],
[".jpb", "application/octet-stream"],
[".jpe", "image/jpeg"],
[".jpeg", "image/jpeg"],
[".jpg", "image/jpeg"],
[".js", "application/x-javascript"],
[".json", "application/json"],
[".jsx", "text/jscript"],
[".jsxbin", "text/plain"],
[".latex", "application/x-latex"],
[".library-ms", "application/windows-library+xml"],
[".lit", "application/x-ms-reader"],
[".loadtest", "application/xml"],
[".lpk", "application/octet-stream"],
[".lsf", "video/x-la-asf"],
[".lst", "text/plain"],
[".lsx", "video/x-la-asf"],
[".lzh", "application/octet-stream"],
[".m13", "application/x-msmediaview"],
[".m14", "application/x-msmediaview"],
[".m1v", "video/mpeg"],
[".m2t", "video/vnd.dlna.mpeg-tts"],
[".m2ts", "video/vnd.dlna.mpeg-tts"],
[".m2v", "video/mpeg"],
[".m3u", "audio/x-mpegurl"],
[".m3u8", "audio/x-mpegurl"],
[".m4a", "audio/m4a"],
[".m4b", "audio/m4b"],
[".m4p", "audio/m4p"],
[".m4r", "audio/x-m4r"],
[".m4v", "video/x-m4v"],
[".mac", "image/x-macpaint"],
[".mak", "text/plain"],
[".man", "application/x-troff-man"],
[".manifest", "application/x-ms-manifest"],
[".map", "text/plain"],
[".master", "application/xml"],
[".mda", "application/msaccess"],
[".mdb", "application/x-msaccess"],
[".mde", "application/msaccess"],
[".mdp", "application/octet-stream"],
[".me", "application/x-troff-me"],
[".mfp", "application/x-shockwave-flash"],
[".mht", "message/rfc822"],
[".mhtml", "message/rfc822"],
[".mid", "audio/mid"],
[".midi", "audio/mid"],
[".mix", "application/octet-stream"],
[".mk", "text/plain"],
[".mmf", "application/x-smaf"],
[".mno", "text/xml"],
[".mny", "application/x-msmoney"],
[".mod", "video/mpeg"],
[".mov", "video/quicktime"],
[".movie", "video/x-sgi-movie"],
[".mp2", "video/mpeg"],
[".mp2v", "video/mpeg"],
[".mp3", "audio/mpeg"],
[".mp4", "video/mp4"],
[".mp4v", "video/mp4"],
[".mpa", "video/mpeg"],
[".mpe", "video/mpeg"],
[".mpeg", "video/mpeg"],
[".mpf", "application/vnd.ms-mediapackage"],
[".mpg", "video/mpeg"],
[".mpp", "application/vnd.ms-project"],
[".mpv2", "video/mpeg"],
[".mqv", "video/quicktime"],
[".ms", "application/x-troff-ms"],
[".msi", "application/octet-stream"],
[".mso", "application/octet-stream"],
[".mts", "video/vnd.dlna.mpeg-tts"],
[".mtx", "application/xml"],
[".mvb", "application/x-msmediaview"],
[".mvc", "application/x-miva-compiled"],
[".mxp", "application/x-mmxp"],
[".nc", "application/x-netcdf"],
[".nsc", "video/x-ms-asf"],
[".nws", "message/rfc822"],
[".ocx", "application/octet-stream"],
[".oda", "application/oda"],
[".odc", "text/x-ms-odc"],
[".odh", "text/plain"],
[".odl", "text/plain"],
[".odp", "application/vnd.oasis.opendocument.presentation"],
[".ods", "application/oleobject"],
[".odt", "application/vnd.oasis.opendocument.text"],
[".one", "application/onenote"],
[".onea", "application/onenote"],
[".onepkg", "application/onenote"],
[".onetmp", "application/onenote"],
[".onetoc", "application/onenote"],
[".onetoc2", "application/onenote"],
[".orderedtest", "application/xml"],
[".osdx", "application/opensearchdescription+xml"],
[".p10", "application/pkcs10"],
[".p12", "application/x-pkcs12"],
[".p7b", "application/x-pkcs7-certificates"],
[".p7c", "application/pkcs7-mime"],
[".p7m", "application/pkcs7-mime"],
[".p7r", "application/x-pkcs7-certreqresp"],
[".p7s", "application/pkcs7-signature"],
[".pbm", "image/x-portable-bitmap"],
[".pcast", "application/x-podcast"],
[".pct", "image/pict"],
[".pcx", "application/octet-stream"],
[".pcz", "application/octet-stream"],
[".pdf", "application/pdf"],
[".pfb", "application/octet-stream"],
[".pfm", "application/octet-stream"],
[".pfx", "application/x-pkcs12"],
[".pgm", "image/x-portable-graymap"],
[".pic", "image/pict"],
[".pict", "image/pict"],
[".pkgdef", "text/plain"],
[".pkgundef", "text/plain"],
[".pko", "application/vnd.ms-pki.pko"],
[".pls", "audio/scpls"],
[".pma", "application/x-perfmon"],
[".pmc", "application/x-perfmon"],
[".pml", "application/x-perfmon"],
[".pmr", "application/x-perfmon"],
[".pmw", "application/x-perfmon"],
[".png", "image/png"],
[".pnm", "image/x-portable-anymap"],
[".pnt", "image/x-macpaint"],
[".pntg", "image/x-macpaint"],
[".pnz", "image/png"],
[".pot", "application/vnd.ms-powerpoint"],
[".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"],
[".potx", "application/vnd.openxmlformats-officedocument.presentationml.template"],
[".ppa", "application/vnd.ms-powerpoint"],
[".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"],
[".ppm", "image/x-portable-pixmap"],
[".pps", "application/vnd.ms-powerpoint"],
[".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"],
[".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"],
[".ppt", "application/vnd.ms-powerpoint"],
[".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"],
[".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"],
[".prf", "application/pics-rules"],
[".prm", "application/octet-stream"],
[".prx", "application/octet-stream"],
[".ps", "application/postscript"],
[".psc1", "application/PowerShell"],
[".psd", "application/octet-stream"],
[".psess", "application/xml"],
[".psm", "application/octet-stream"],
[".psp", "application/octet-stream"],
[".pub", "application/x-mspublisher"],
[".pwz", "application/vnd.ms-powerpoint"],
[".qht", "text/x-html-insertion"],
[".qhtm", "text/x-html-insertion"],
[".qt", "video/quicktime"],
[".qti", "image/x-quicktime"],
[".qtif", "image/x-quicktime"],
[".qtl", "application/x-quicktimeplayer"],
[".qxd", "application/octet-stream"],
[".ra", "audio/x-pn-realaudio"],
[".ram", "audio/x-pn-realaudio"],
[".rar", "application/octet-stream"],
[".ras", "image/x-cmu-raster"],
[".rat", "application/rat-file"],
[".rc", "text/plain"],
[".rc2", "text/plain"],
[".rct", "text/plain"],
[".rdlc", "application/xml"],
[".resx", "application/xml"],
[".rf", "image/vnd.rn-realflash"],
[".rgb", "image/x-rgb"],
[".rgs", "text/plain"],
[".rm", "application/vnd.rn-realmedia"],
[".rmi", "audio/mid"],
[".rmp", "application/vnd.rn-rn_music_package"],
[".roff", "application/x-troff"],
[".rpm", "audio/x-pn-realaudio-plugin"],
[".rqy", "text/x-ms-rqy"],
[".rtf", "application/rtf"],
[".rtx", "text/richtext"],
[".ruleset", "application/xml"],
[".s", "text/plain"],
[".safariextz", "application/x-safari-safariextz"],
[".scd", "application/x-msschedule"],
[".sct", "text/scriptlet"],
[".sd2", "audio/x-sd2"],
[".sdp", "application/sdp"],
[".sea", "application/octet-stream"],
[".searchConnector-ms", "application/windows-search-connector+xml"],
[".setpay", "application/set-payment-initiation"],
[".setreg", "application/set-registration-initiation"],
[".settings", "application/xml"],
[".sgimb", "application/x-sgimb"],
[".sgml", "text/sgml"],
[".sh", "application/x-sh"],
[".shar", "application/x-shar"],
[".shtml", "text/html"],
[".sit", "application/x-stuffit"],
[".sitemap", "application/xml"],
[".skin", "application/xml"],
[".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"],
[".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"],
[".slk", "application/vnd.ms-excel"],
[".sln", "text/plain"],
[".slupkg-ms", "application/x-ms-license"],
[".smd", "audio/x-smd"],
[".smi", "application/octet-stream"],
[".smx", "audio/x-smd"],
[".smz", "audio/x-smd"],
[".snd", "audio/basic"],
[".snippet", "application/xml"],
[".snp", "application/octet-stream"],
[".sol", "text/plain"],
[".sor", "text/plain"],
[".spc", "application/x-pkcs7-certificates"],
[".spl", "application/futuresplash"],
[".src", "application/x-wais-source"],
[".srf", "text/plain"],
[".SSISDeploymentManifest", "text/xml"],
[".ssm", "application/streamingmedia"],
[".sst", "application/vnd.ms-pki.certstore"],
[".stl", "application/vnd.ms-pki.stl"],
[".sv4cpio", "application/x-sv4cpio"],
[".sv4crc", "application/x-sv4crc"],
[".svc", "application/xml"],
[".swf", "application/x-shockwave-flash"],
[".t", "application/x-troff"],
[".tar", "application/x-tar"],
[".tcl", "application/x-tcl"],
[".testrunconfig", "application/xml"],
[".testsettings", "application/xml"],
[".tex", "application/x-tex"],
[".texi", "application/x-texinfo"],
[".texinfo", "application/x-texinfo"],
[".tgz", "application/x-compressed"],
[".thmx", "application/vnd.ms-officetheme"],
[".thn", "application/octet-stream"],
[".tif", "image/tiff"],
[".tiff", "image/tiff"],
[".tlh", "text/plain"],
[".tli", "text/plain"],
[".toc", "application/octet-stream"],
[".tr", "application/x-troff"],
[".trm", "application/x-msterminal"],
[".trx", "application/xml"],
[".ts", "video/vnd.dlna.mpeg-tts"],
[".tsv", "text/tab-separated-values"],
[".ttf", "application/octet-stream"],
[".tts", "video/vnd.dlna.mpeg-tts"],
[".txt", "text/plain"],
[".u32", "application/octet-stream"],
[".uls", "text/iuls"],
[".user", "text/plain"],
[".ustar", "application/x-ustar"],
[".vb", "text/plain"],
[".vbdproj", "text/plain"],
[".vbk", "video/mpeg"],
[".vbproj", "text/plain"],
[".vbs", "text/vbscript"],
[".vcf", "text/x-vcard"],
[".vcproj", "Application/xml"],
[".vcs", "text/plain"],
[".vcxproj", "Application/xml"],
[".vddproj", "text/plain"],
[".vdp", "text/plain"],
[".vdproj", "text/plain"],
[".vdx", "application/vnd.ms-visio.viewer"],
[".vml", "text/xml"],
[".vscontent", "application/xml"],
[".vsct", "text/xml"],
[".vsd", "application/vnd.visio"],
[".vsi", "application/ms-vsi"],
[".vsix", "application/vsix"],
[".vsixlangpack", "text/xml"],
[".vsixmanifest", "text/xml"],
[".vsmdi", "application/xml"],
[".vspscc", "text/plain"],
[".vss", "application/vnd.visio"],
[".vsscc", "text/plain"],
[".vssettings", "text/xml"],
[".vssscc", "text/plain"],
[".vst", "application/vnd.visio"],
[".vstemplate", "text/xml"],
[".vsto", "application/x-ms-vsto"],
[".vsw", "application/vnd.visio"],
[".vsx", "application/vnd.visio"],
[".vtx", "application/vnd.visio"],
[".wav", "audio/wav"],
[".wave", "audio/wav"],
[".wax", "audio/x-ms-wax"],
[".wbk", "application/msword"],
[".wbmp", "image/vnd.wap.wbmp"],
[".wcm", "application/vnd.ms-works"],
[".wdb", "application/vnd.ms-works"],
[".wdp", "image/vnd.ms-photo"],
[".webarchive", "application/x-safari-webarchive"],
[".webtest", "application/xml"],
[".wiq", "application/xml"],
[".wiz", "application/msword"],
[".wks", "application/vnd.ms-works"],
[".WLMP", "application/wlmoviemaker"],
[".wlpginstall", "application/x-wlpg-detect"],
[".wlpginstall3", "application/x-wlpg3-detect"],
[".wm", "video/x-ms-wm"],
[".wma", "audio/x-ms-wma"],
[".wmd", "application/x-ms-wmd"],
[".wmf", "application/x-msmetafile"],
[".wml", "text/vnd.wap.wml"],
[".wmlc", "application/vnd.wap.wmlc"],
[".wmls", "text/vnd.wap.wmlscript"],
[".wmlsc", "application/vnd.wap.wmlscriptc"],
[".wmp", "video/x-ms-wmp"],
[".wmv", "video/x-ms-wmv"],
[".wmx", "video/x-ms-wmx"],
[".wmz", "application/x-ms-wmz"],
[".wpl", "application/vnd.ms-wpl"],
[".wps", "application/vnd.ms-works"],
[".wri", "application/x-mswrite"],
[".wrl", "x-world/x-vrml"],
[".wrz", "x-world/x-vrml"],
[".wsc", "text/scriptlet"],
[".wsdl", "text/xml"],
[".wvx", "video/x-ms-wvx"],
[".x", "application/directx"],
[".xaf", "x-world/x-vrml"],
[".xaml", "application/xaml+xml"],
[".xap", "application/x-silverlight-app"],
[".xbap", "application/x-ms-xbap"],
[".xbm", "image/x-xbitmap"],
[".xdr", "text/plain"],
[".xht", "application/xhtml+xml"],
[".xhtml", "application/xhtml+xml"],
[".xla", "application/vnd.ms-excel"],
[".xlam", "application/vnd.ms-excel.addin.macroEnabled.12"],
[".xlc", "application/vnd.ms-excel"],
[".xld", "application/vnd.ms-excel"],
[".xlk", "application/vnd.ms-excel"],
[".xll", "application/vnd.ms-excel"],
[".xlm", "application/vnd.ms-excel"],
[".xls", "application/vnd.ms-excel"],
[".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"],
[".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"],
[".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],
[".xlt", "application/vnd.ms-excel"],
[".xltm", "application/vnd.ms-excel.template.macroEnabled.12"],
[".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"],
[".xlw", "application/vnd.ms-excel"],
[".xml", "text/xml"],
[".xmta", "application/xml"],
[".xof", "x-world/x-vrml"],
[".XOML", "text/plain"],
[".xpm", "image/x-xpixmap"],
[".xps", "application/vnd.ms-xpsdocument"],
[".xrm-ms", "text/xml"],
[".xsc", "application/xml"],
[".xsd", "text/xml"],
[".xsf", "text/xml"],
[".xsl", "text/xml"],
[".xslt", "text/xml"],
[".xsn", "application/octet-stream"],
[".xss", "application/xml"],
[".xtp", "application/octet-stream"],
[".xwd", "image/x-xwindowdump"],
[".z", "application/x-compress"],
[".zip", "application/x-zip-compressed"]
];
// ----------------------- End of Extensions to MIME --------- //