Как получить URL файла с помощью jquery - PullRequest
0 голосов
/ 01 мая 2018

Я использую диалоговое окно выбора папки, чтобы получить несколько файлов. Мне нужно проанализировать файл XML в этой папке. Но я не могу найти путь к файлу. Ты можешь мне помочь.

//Onclick choose path
$("input[name='file_path']").click(function(){

    $("#myInput").trigger('click');
});
$("#myInput").change(function() {
    var names = [];
    for (var i = 0; i < $(this).get(0).files.length; ++i)
    {
        var F_name= $(this).get(0).files[i].name;
        names.push(F_name);
        var extension = F_name.replace(/^.*\./, '');
        if(extension == "xml")
        {   
            $.ajax({
            type: "GET" ,
            url:  F_name,
            dataType: "xml" ,
            success: function(xml) {    

                    alert($(this).find('title-group article-title').text());                
            }

            });
        }       
    }
    $("input[name=file_path]").val(names);

});

1 Ответ

0 голосов
/ 01 мая 2018

Вы не можете использовать ajax для чтения файлов в файловой системе пользователя, но вы можете использовать объект FileReader для чтения данных файла.

$("#myInput").change(function() {
    var names = [];
    for (var i = 0; i < this.files.length; ++i)
    {
        var F_name = this.files[i].name;
        names.push(F_name);
        var extension = F_name.replace(/^.*\./, '');
        if(extension == "xml")
        {   
            var rd = new FileReader();
            rd.onload = function(e){   
                var xmlDoc = $.parseXML(this.result);
                var $xml = $(xmlDoc);
                console.log($xml.find('title-group article-title').text());                
            };
            rd.readAsText(this.files[i]);
        }       
    }
    $("input[name=file_path]").val(names);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type=file id=myInput multiple>
<input name=file_path>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...