【问题标题】:matching file extension in the document via javascript通过javascript匹配文档中的文件扩展名
【发布时间】:2012-04-14 02:14:31
【问题描述】:

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

我正在我的网站上实现 Anarchy 播放器,问题是脚本将文件存储在域根目录之外,因此指向它们的链接格式如下(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 中并使用 if...div.match(...? 视频文件的链接已经在 div 块 id “video”中

<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") {

非常感谢您的任何建议。

【问题讨论】:

  • 如果您在其他地方生成这些 url,您可以只包含一个列出文件类型的额外查询参数。例如example.com/download.php?file_guid=XXX&amp;type=mp4

标签: php javascript


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多