1

アップロード入力からファイル名を警告しようとしています。

これが私のフィドルです

それは機能しますが、「C:Fakepath...」のようなものがあります。偽のパスなしでファイル名が欲しいだけです。関数を使用してみましたsplitが、なぜ機能しないのかわかりません。

html の例:

<html>
    <head>
        <title>Test Page</title>
        <script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>
    <body>
        <input type="file" id="tester" />
    </body>
</html>

スクリプト例:

$(function() {
    var bogus;
    var triple;
    $('#tester').change(function() {

        triple = $('#tester').val();
        bogus = triple.split(/[\s/]+/);

        alert(bogus[bogus.length - 1]);
    });
});

何か考えはありますか?

ありがとうございました!

4

2 に答える 2

6

スラッシュをエスケープするだけです:

   bogus = triple.split("\\");

更新されたフィドル: http://jsfiddle.net/johnkoer/xwdct/3/

于 2012-08-10T15:35:31.703 に答える
0

Web ブラウザーがFile APIをサポートしている場合(現在、これは IE 以外の Web ブラウザーです)、入力の FileList オブジェクトからファイル名を取得できます。

$(function() {
    $('#tester').change(function() {
        var files = this.files;
        if (files && files.length) {
            alert(files[0].name); //use the file api
        }
        else {
            alert($(this).val().replace("C:\\fakepath\\", ""));  //this is for IE
        }
    });
});​

例: http://jsfiddle.net/NTICompass/xwdct/6/

ドキュメント: https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

于 2012-08-10T15:40:29.707 に答える