5

メタデータを読み取って曲のタイトルと歌手の名前を抽出できるように、ユーザーがmp3ファイルをアップロードできるようにしています。

現在、ファイルをアップロードし、getIdを使用してメタデータを読み取っています。もちろん、アップロードには多くのリソースと帯域幅が必要です。そして、必要なのは2つの情報だけであり、ファイル自体には何もしないので、mp3をアップロードするのはちょっと無駄に思えます。後で削除します。

ファイルをサーバーにコピーせずに、クライアント側でこれら2つの情報を取得することは可能ですか?

4

3 に答える 3

4

これは、 FileReaderインターフェイスを実装したHTML5準拠のブラウザ(Firefox、Chrome、IE10、Safari 5.1以降、Operaについては不明)でのみ実行できます。

基本的に、FileReaderを使用してファイルの内容をメモリに取り込み、必要なMP3タグを手動で(クライアント側のJavaScriptで)スキャンします。

于 2012-07-31T23:48:04.290 に答える
0

クライアント側のファイルから情報を取得するには、ファイルをアップロードしてサーバーで処理するか(これは実行したくない)、クライアント側でファイルを処理するクライアントを配布して、適切な情報。オプション2では、クライアントアプリケーションを開発(または採用)して配布する必要があります。

于 2012-07-31T23:35:44.037 に答える
0

このようにあなたは意味します:作業デモ 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"); 
     }    
  }); 
});​
于 2012-07-31T23:36:35.450 に答える