通过JavaScript匹配文档中的文件扩展名


matching file extension in the document via javascript

这是我最初的问题(http://stackoverflow.com/questions/10133976/getelementsbytagname-specific-links-only)的延续,我得到了解决,但现在面临不同的问题。

我正在我的网站上实现无政府状态播放器,问题是脚本将文件存储在域根目录之外,因此指向它们的链接格式为 (http://mysite.com/mod/file/download.php?file_guid=fileID),这对播放器来说很好,它仍然播放文件,但我需要按类型分隔文件。

看看下面的javascript代码,"if(o.href.match(/.mov$|.mp4$|.m4v$|.m4b$|.3gp$/i)"部分,如果我理解正确,它会说文件扩展名是否为 .mov、.mp4等,而不是包括该播放器。但是由于链接不是带有文件名和扩展名的标准格式,因此无法识别它。如何将"if(o.href.match)"更改为可以区分文件类型的内容?我可以通过 PHP 代码以文本格式提取带有扩展名的文件全名,并可能将其包装在div 中,如果......div.match(...?指向视频文件的链接已经在div块ID"视频"中

<div id="video">
        <a href="<?php echo $file_url;?>"></a>
        </div>

这是javascript:

var all = document.getElementById ( "video" ).getElementsByTagName ( "a" );
        for (var i = 0, o; o = all[i]; i++) {
            if(o.href.match(/'.mov$|'.mp4$|'.m4v$|'.m4b$|'.3gp$/i) && o.className!="amplink") {

非常感谢您的任何建议。

仅通过查看文件名并不总是可以决定文件的文件类型。更好的方法是查看Content-Type标头(如果是HTTP资源)或MIME-type(本质上是相同的)。

仍然有可能发送错误的Content-Type,所以也许有一种方法可以通过查看前几个字节来识别文件类型?我知道 PNG 从一个非常明显的指标开始。