用Javascript部分下载文件

时间:2012-12-04 14:00:22

标签: javascript html5 web-applications id3

我们实际上正在使用javascript处理远程音乐库管理器,我想知道是否有一种方法可以使用js下载最后128字节的MP3文件以获取其ID3标签。感谢。

2 个答案:

答案 0 :(得分:9)

只有JavaScript才能做到这一点。您需要在服务器上使用某些东西(完全取决于您的服务器端技术)才能读取文件的相关部分。然后在JavaScript中,您可以调用该服务器端部分。

更新1

HTTP协议支持部分下载文件(这就是它)。但当然,HTTP对MP3文件一无所知,因此您必须知道JavaScript中包含ID3标记的文件范围。

更新2

似乎比我最初期望在纯JavaScript中只下载一大块URL更可行:

xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your domain>/");
xhr.setRequestHeader("Range", "bytes=-256");
xhr.send();

请求远程文件的最后256个字节。

请注意,您的请求当然受到通常的同源限制,因此您只能使用它来从包含原始HTML / JavaScript的服务器中检索文件。

答案 1 :(得分:1)

使用服务器端编程语言:不。

您可以使用Ajax和PHP(或任何其他编程语言)来获取ID3标记。

使用jQuery看起来像这样:

function getInfo(func) {
$.ajax({
    url: "mp3info.php?file=" + url,
    dataType: "json",
    ready: function(result) {
        func(result);
    }
});
}

你这样使用它:

getInfo(function(mp3info) {
    alert(mp3info.id3);
});

然后你的PHP文件看起来像这样:

<?php
$info = array(); //The MP3 info array
echo json_encode($info, true);
?>