2012-01-22 2 views
1

どのように質問するかわからないですが、基本的には、処理のためにサーバーに送信される前にユーザーアップロードのファイル拡張子をチェックする古いjavascriptがあります。REGULARのjavascript ...スクリプトでjqueryを使用していますか?

javascript条件がループ内でtrueを返すたびに(つまり、ファイルがアップロードに適している)、divをslideDown()にしたいと思います。これまで

コード:あなたは$("#pleasewait").slideDown();

+1

。誰かがJavaScriptを無効にしたり、関数をオーバーライドしたり、クライアント側のコードで他の何かを実行したりすることができます。サーバー側のコードでこれをチェックしないと、アプリが爆発する可能性があります。 – voithos

+0

ファイルの名前が '.mp3'、' .mpeg3'、 '.mpeg2layer3'、または' .flubber'の場合はどうですか? – sarnold

+0

@voithos私は知っています。合意したしかし、私が言ったように、これはウェブサイトのパスワード保護されたメイン管理セクションにあります。また、アップロードボタンを押した後、「有効でないファイルタイプ」と表示されるまで50秒間待つことを想像してください。それはなぜJavaScriptチェックがFIRSTになってからPHPがLATERをチェックするのがユーザーフレンドリーなのかということです。 – PaulHanak

答えて

3

コードの後return true;を置くべき

var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.')); 
for(var i = 0; i < extension.length; i++) { 
    if(thisext == extension[i]) { return true; 

      $("#pleasewait").slideDown(); 

     } 
    } 
alert("Please upload ONLY .mp3 files. No other files will work."); 
return false; 
} 
5

は、論理エラーの教科書場合があります。滑り落ちはの前に発生します。 return文は、その行の直後に関数が終了するためです。

あなたの関数内でこれを試してください:あなたはこれをチェックするためにJavaScriptに依存したくない

var thisext = fieldvalue.substr(fieldvalue.lastIndexOf('.')); 
for(var i = 0; i < extension.length; i++) { 
    if(thisext == extension[i]) { 
     $("#pleasewait").slideDown(); 

     return true; 
    } 
} 

alert("Please upload ONLY .mp3 files. No other files will work."); 
return false; 
関連する問題