2011-08-13 6 views
8

ファイル入力要素にXMLファイルのみを表示するにはどうすればよいですか? "accept"属性について読みましたが、ブラウザが実際にそれをサポートしていないことも知っていました。私はここにいくつかのJSスクリプトを見つけましたが、彼らはうまく動作しませんでした: -HTMLファイル入力要素にXMLファイルのみを表示

\(私もこのサーバ側をチェックしていますが、あまりにもそれをクライアント側の操作を行いたい)

おかげ

+0

を確認したい場合はSO 質問 [http://stackoverflow.com/questions/1978134/how-to-restrict-file-types-with-html-input-file-type/1978160#1978160][1] [ 1]:http://stackoverflow.com/questions/1978134/how-to-restrict-file-types- HTML-input-file-type/1978160#1978160 –

答えて

-1

ありませんあなたがそれを行うことができるかどうかは確かですが、少なくともコールバック関数を使用し、.xml拡張の入力値をチェックすることができます。

スニペット:

<script type="text/javascript"> 
    function isXml(input) 
    { 
     var value = input.value; 
     var res = value.substr(value.lastIndexOf('.')) == '.xml'; 
      if (!res) { 
       input.value = ""; 
      } 
     return res; 
    } 
</script> 

<form method="post" action=""> 
    <input type="file" name="myfile" id="myfile" onchange="return isXml(this)" /> 
    <input type="submit" /> 
</form> 
+0

確かに、私は送信している間にこれを行うことができますが、ユーザーがファイルを参照するときにそうすることをお勧めします。私は画像のアップロードサイトが画像のみを制限しているのを見ましたが、それを達成するためにフラッシュを使用していて、私はフラッシュを使いたくありません: - – Shai

+0

あなたはファイルを選ぶ際に、あなたは単純にhtml/jsで見栄えが悪いかもしれませんが、少なくともユーザーがファイルを選択するときにいくつかのフィードバックを与えることができます。デモのためのスニペットで私の答えを更新しました。ここでは、間違った拡張子を持つファイルが選択された場合、フィールド値を空に設定します。エラーを示すために視覚効果をいくつか実装することもできます。 – kjetilh

13

答えは、MIMEタイプを使用し、非常に単純です。だから、それはあなたがしたいXMLファイルであれば、あなただけの操作を行います。

<input type="file" accept="text/xml" /> 

あなたは、この他に答えをチェックし、MIMEタイプの完全なリストを参照してください。このサイトにhttp://www.iana.org/assignments/media-types/media-types.xhtml

関連する問題