2015-01-21 3 views
0

Я работаю с приложением, которое предоставляет пользователю возможность загружать определенные файлы на сервер. И это прекрасно работает. Но теперь я хочу проверить окончания файлов через JavaScript, чтобы убедиться, что пользователь может загружать только файлы определенного формата. Например: * .txtКак получить имя файла в JavaScript?

Поэтому я хочу прочитать имя файла и проверить окончание. Моя проблема в том, что я не знаю, как получить доступ к имени файла. Я знаю, что его довольно просто получить значение строки через: document.getElementById ('Field'). Value -> это работает для меня.

Но как я могу получить доступ к имени файла? Мне нужно преобразовать их в файлы с чем-то вроде fileReader? Нет ли более простого способа получить имя файла.

Обновление: HTML5-решения для меня не сработают. Разве нет другого способа сделать это без File-API?

+0

Что вы имеете в виду, когда говорите _ «Я получаю загруженные файлы как js-объекты» _? Обычно Javascript запускается в браузере перед тем, как произойдет загрузка. Вы используете Node.js? Вы пытались использовать 'document.getElementById ('input_type_file'). Value', чтобы получить имя файла? – funkwurm

+0

youre right, я удалил это предложение :-) document.getElementById ('input_type_file'). Значение не работает. Неужели это действительно работает? Я не понимаю, что он работает со строкой, а затем просто возвращает строку. Но должно ли оно возвращать имя файла как значение, если его файл? –

ответ

-5

Используйте File API для доступа к файлам.

// fileInput is a HTMLInputElement: <input type="file" multiple id="myfileinput"> 
var fileInput = document.getElementById("myfileinput"); 

// files is a FileList object (simliar to NodeList) 
var files = fileInput.files; 

for (var i = 0; i < files.length; i++) { 
    alert("Filename " + files[i].name); 
} 
0

Существует два способа сделать это.

Вы можете проверить введенное значение, как вы уже указали, или если ваш браузер поддерживает API файлов HTML5, вы можете использовать его для определения имени файла.

document.getElementById('file').addEventListener('change', function(e) { 
    console.log(e.target.files[0].name); //myFile.txt 
}); 

Используя этот метод, вы можете даже дойти до определения типа MIME для проверки типа содержимого.

document.getElementById('file').addEventListener('change', function(e) { 
    var type = e.target.files[0].type; 
    if(type === 'text/plain') //File contains plain text 
}); 
Смежные вопросы