是否有可能得到在客户端文件信息,而不上传文件?(Is it possible to get info

2019-06-26 16:06发布

我让我的用户上传mp3文件,这样我可以读取元数据并提取歌名和歌手名称。

目前,我上传文件并使用的getId读取元数据。 当然,上传需要大量的资源和带宽。 由于所有我需要的是2条信息,我甚至不会做与文件本身任何它似乎有点浪费上传MP3文件。 所以,我后来删除它。

是否有可能得到这2件在客户端信息,而无需将文件复制到我的服务器?

Answer 1:

你只能做这在实施的HTML5兼容的浏览器的FileReader接口(火狐,Chrome,IE10,Safari浏览器5.1及更高版本,不知道歌剧)。

你基本上使用的FileReader让你的文件到内存中的内容,然后手动扫描(在客户端JavaScript)为您想要的MP3标签。



Answer 2:

您只可以通过上传和处理在服务器上(你不想做的),或分发客户端将处理在客户端的文件并上传刚刚得到一个客户端的文件信息相关信息。 选项2需要你发展(或增选)的客户端应用程序,并分发。



Answer 3:

这样你的意思是: 工作演示 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"); 
     }    
  }); 
});​


文章来源: Is it possible to get info from a file on the client side without uploading the file?