ниже – мой простой код с использованием загрузки нескольких файлов HTML 5. Все, что мне нужно, это захватить все имена файлов, а не пути ниже – простой код javascript
function getFileNames() { var path = $('#files').val(); console.log(' path = ' + path); }
и html-форму, как
<form action='server.php' method='post' enctype='multipart/form-data' target="iframe"> <input id="files" name='files[]' type='file' multiple> <input type='button' onclick="getFileNames()"> </form>
когда я нажимаю кнопку, консольный вывод равен
путь = Chrysanthemum.jpg
который является первым именем файла, и я хочу, чтобы остальные имена, любые предложения, комментарии были оценены. Благодарю.
так что вот я с решением после много исследований, в случае input type file
значение хранится в array
как files
с name
ключа.
var files = $('input#files')[0].files; var names = ""; $.each(files,function(i, file){ names += file.name + " "; }); alert(names);
скрипка: http://jsfiddle.net/raj_er04/nze2B/1/
чистый javascript
function getFileNames(){ var files = document.getElementById("files").files; var names = ""; for(var i = 0; i < files.length; i++) names += files[i].name + " "; alert(names); }
function getFileNames() { var files = document.getElementById("files").files; for (var i = 0, f; f = files[i]; i++) { console.log(' name= ' + f.name); alert(' path = ' + f.name); } }
Вместо
var path = $('#files').val();
петля через массив, используйте
var names = ""; var path = $('#files').each(function(i, el) { names = names + el.val() + ","; });