2016-05-12 9 views
0

選択したファイルのファイルパスを取得しようとしています。 デバッガを使用して、私はファイルが値と呼ばれる値を持っていることがわかります:"C:\fakepath\filename.txt"

ただし、file.valueにアクセスしようとすると、filepathはnullに等しくなります。
私は、Java 8、Strutsの1.2、JSP、およびクロム Javascriptを使用しています:javascriptファイル入力変数の値へのアクセス

function validateFile(file) 
{ 
    filepath = file.value; /*This is null*/ 
    return true; 
} 

HTML:

<input type="file" id="theFile[0]" onChange="validateFile(this)"/> 
+3

あなたは*私が見ることができるということの例では*何の値プロパティを設定しようとしていません。それがエラーの正しいコードだと確信していますか? – Quentin

+0

私は上記のコメントに同意します。 onChangeを 'validateFile(this)'に、 'function validateFile(fileid)'の代わりに 'function validateFile(file)'を使ってみてください。 'var file'の変数宣言も削除してください。 –

+0

@Quentin 'filepath = file.value'は、' var file = ... 'が設定されたときに' filepath'でvalueプロパティを設定しようとしていませんか? – 8protons

答えて

1

私は結局それはあまりにも多くの仕事ではなかったと推測する:)

function validateFile(file) 
 
{ 
 
    filepath = file.value; 
 
    document.getElementById('result').innerText = filepath; 
 
    return true; 
 
}
<input type="file" onChange="validateFile(this)"/> 
 
<div id="result">[result will be here]</div>

2

これを試してみてください:

function validateFile(fileinput) { 
 
    var allowed = "pdf,png"; 
 
    var filepath=fileinput.value; 
 
    var ext = filepath.substr(filepath.lastIndexOf('.')+1); 
 
    if (filepath = "" || allowed.search(ext) <= -1) { 
 
     fileinput.value=''; 
 
     alert('Invalid file type'); 
 
     return false; 
 
    } 
 
}
<input type="file" id="inputFile" onChange="validateFile(this)"/>

+0

ありがとうございます。しかし、私はちょうどジョナサンの答えを使用して問題を修正しました。 – Turtle

+0

実際にこの問題を修正したので、この回答を+1しました。 –

関連する問題