2016-05-12 4 views
0

Я пытаюсь получить путь к файлу выбранного файла. Используя отладчик, я вижу, что у файла есть свойство, называемое значением, которое равно: "C:\fakepath\filename.txt".

Однако, когда я пытаюсь получить доступ к файлу file.value, путь к файлу равен нулю.
Я использую Java 8, Struts 1.2, JSP и Chrome 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)' use 'function validateFile (file)'. Удалите объявление переменной для 'var file'. –

+0

@Quentin 'filepath = file.value', когда был установлен параметр' var file = ...', не является попыткой установить свойство value с 'filepath'? – 8protons

ответ

1

I думаю, это было не слишком много работы :)

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 ответ, так как это действительно решило проблему. –

Смежные вопросы