是否可以从客户端的文件中获取信息而无需上传文件?

我允许我的用户上传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

希望它有助于你的事业:) ,rest随意玩这个演示。

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"); } }); });​