2016-04-15 28 views
-2

Google Chromeブラウザにファイルをアップロードしています。"C: fakepath ...."を含む部分文字列の抽出方法

次のコードを使用して入力ファイル(abc.pdf)の値を警告しようとすると、C:\fakepath\abc.pdfとなります。

var ab = document.getElementById( "myfile")。value;
アラート(ab);

だから私はsplit("\\")メカニズムを使用し

  1. ....ファイル入力の値を取得するには、以下の方法を試してみましたが、それは結果を取得できませんでした。
  2. lastIndexOf("\\")を使用して「\」の最後のインデックスを調べようとしましたが、見つからなかった。

私は次のコードスニペットを書いています。しかし、次に進む方法を理解することはできません。
どのようなご提案も高く評価されます。

<html> 
<head> 
    <script type="text/javascript"> 
     function show(){ 
      var ab = document.getElementById("myfile").value; 
      alert(ab); 
     } 
    </script> 
</head>  
<body> 
    <form> 
    <input type="file" name="myfile" id="myfile" value="" onchange="show()"/> 
    <input type="button" name="submit" value="submit"> 
    </form> 
</body> 
</html> 

答えて

1

C:\fakepath\は、単に実際の値がサーバーにポストされたときに存在してandshouldn'tセキュリティ目的のために、ブラウザによってで追加されたものです。

あなたalert()コール(または他の目的のために)での表示のためにそれらを交換したいと思った場合、あなただけのreplace()呼び出しを介して、それを交換してみてくださいは:

// This should strip off 'C:\fakepath\' from your file path 
var ab = document.getElementById("myfile").value.replace('C:\\fakepath\\',''); 
alert(ab); 

あなたは以下の完全な作業例を見ることができます(ちょうど)ファイルを追加します。

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>Fakepath Eraser Pro</title> 
 
</head> 
 
<body> 
 
    <input type='file' onchange='alert(this.value.replace("C:\\fakepath\\",""))' /> 
 
</body> 
 
</html>

+0

はい.itはうまく動作します@Rion。ありがとう。 –

0

置き換えることができますか?

var ab = document.getElementById("myfile").value.replace(/C:\\fakepath\\/i, ''); 
0

を "\" SPですエイリアス文字であり、正しく動作するためには文字列でエスケープする必要があります。

var path = "C:\\fakepath\\abc.pdf"; 
var array = path.split("\\"); 
console.log(array[array.length-1]); 
// output will be "abc.pdf" 
+0

私は得られる値に余分な "\"をどのように追加できますか?私はファイルを閲覧するときに値を取得しています。 –

関連する問題