我允许我的用户上传 mp3 文件,以便我可以读取元数据并提取歌曲标题和歌手姓名。
目前我正在上传文件并使用getId来读取元数据。上传当然会占用大量资源和带宽。上传 mp3 似乎有点浪费,因为我只需要 2 条信息,而且我什至不会对文件本身做任何事情。所以我后来删除了它。
是否可以在不将文件复制到我的服务器的情况下在客户端获取这两条信息?
我允许我的用户上传 mp3 文件,以便我可以读取元数据并提取歌曲标题和歌手姓名。
目前我正在上传文件并使用getId来读取元数据。上传当然会占用大量资源和带宽。上传 mp3 似乎有点浪费,因为我只需要 2 条信息,而且我什至不会对文件本身做任何事情。所以我后来删除了它。
是否可以在不将文件复制到我的服务器的情况下在客户端获取这两条信息?
您只能在实现FileReader接口的 HTML5 兼容浏览器中执行此操作(Firefox、Chrome、IE10、Safari 5.1+,不确定 Opera)。
您基本上使用 FileReader 将文件的内容放入内存,然后手动扫描(在客户端 javascript 中)以查找所需的 MP3 标签。
您只能从客户端文件中获取信息,方法是上传并在服务器上处理(您不想这样做),或者分发将在客户端处理文件并仅上传的客户端相关信息。选项 2 要求您开发(或共同选择)客户端应用程序并分发它。
像这样你的意思是:工作演示 http://jsfiddle.net/9pfLJ/
好的链接:http: //jquerybyexample.blogspot.com/2012/03/how-to-check-file-size-before-uploading.html
http://www.aibn.com/help/Learn/mimetypes.html
希望它对您的事业有所帮助:)
,请随时使用演示。
PS - 在演示中它也会提醒文件名。
代码
$(document).ready(function() {
$("#flUpload").change(function ()
{
var iSize = ($("#flUpload")[0].files[0].size / 1024);
alert("Name of file ===> " + $("#flUpload")[0].files[0].name);
if (iSize / 1024 > 1)
{
if (((iSize / 1024) / 1024) > 1)
{
iSize = (Math.round(((iSize / 1024) / 1024) * 100) / 100);
$("#lblSize").html( iSize + "Gb");
}
else
{
iSize = (Math.round((iSize / 1024) * 100) / 100)
$("#lblSize").html( iSize + "Mb");
}
}
else
{
iSize = (Math.round(iSize * 100) / 100)
$("#lblSize").html( iSize + "kb");
}
});
});