-1

Web アプリでカスタム ファイル アップロード ボタンを使用しています。ユーザーがファイルを選択したことを確認したいので、div の html を変更してファイル名を表示します。

これが私のjqueryです:

$("input[type=file]").change(function() {
    var filename = $("input[type=file]").val();
    $("#share-file-name p").html(filename);
});

さて、これはうまく機能しますが、入力の値は次のとおりです。

C:\fakepath\photo.jpg

つまり、それがユーザーに表示されます。「photo.jpg」の部分だけ見てもらいたいです。jquery を使用して、ファイル名以外のすべてを削除するにはどうすればよいですか?

ありがとう!

4

5 に答える 5

2

これはうまくいくはずです:

filename = filename.replace(/^.*[\/\\]/, "");
于 2013-07-09T21:26:04.440 に答える
1

右端の「/」の左側にあるものは何でも切り取ることができます

そのようです:

$("input[type=file]").change(function() {
    var filename = $("input[type=file]").val();
    // As pointed out in the comments, this line is required to make it
    // Windows compliant. It's important to handle paths from any OS.
    filename = filename.replace(/^.*[\\\/]/, '');
    $("#share-file-name p").html(filename);
});
于 2013-07-09T21:25:51.543 に答える
1

変数に完全なファイル パスが格納されている場合filenameは、次の操作を実行してファイル名のみを取得できます。

filename.substring(filename.lastIndexOf("\"))

正規表現または分割コマンドは、あなたがしようとしていることに対して過剰です。

于 2013-07-09T21:26:24.747 に答える
0

を使用するsplit("/");と、すべての要素が / で区切られた配列が得られるため、最後の要素がファイル名になります

var file = filepath.split("/"); file[file.length - 1] 
于 2013-07-09T21:25:36.150 に答える