Загрузка файлов распорок 2 с помощью Ajax - PullRequest
4 голосов
/ 02 марта 2012

Я загружаю файл, используя стойки 2 с jsp в качестве внешнего интерфейса, но я не хочу обновлять страницу после загрузки файла, поэтому я использую Ajax, но с этим я не могу получить объект File в действииПохоже, что для загрузки файла нужен тег формы в jsp, и если я отправляю форму, страница обновляется.Я исследовал в сети, но не могу получить много релевантных результатов, было бы очень полезно, если бы кто-то направил меня через это, есть ли способ для этого.Любая помощь будет принята с благодарностью.С наилучшими пожеланиями

1 Ответ

0 голосов
/ 03 сентября 2013

Я предлагаю использовать iframe для загрузки файла вместо ajax,

Пример кода для загрузки CSV-файла с использованием struts2 и iframe:

    var file = $("#fileUpload").val();
    if(file.indexOf(".") != -1 && file.substr(file.indexOf("."))==".csv"){
        /* created  IFrame  For UPload file*/ 
        var iframe = $('<iframe name="uploadIPAddressIFrame"  id="uploadIPAddressIFrame" style="display: none" />');
        $("body").append(iframe);

        /* Set Form for submit iframe*/
        var form = $('#ipPoolForm');
        form.attr("action", "uploadCSVFile.do");
        form.attr("target", "uploadIPAddressIFrame");
        form.submit();

        openDialog(title);
        /* handle response of iframe */
        $("#uploadIPAddressIFrame").load(function () {
            response = $("#uploadIPAddressIFrame")[0].contentWindow.document.body.innerHTML;
            $("#chkIPAddressDiv").html(response);
            $("iframe#uploadIPAddressIFrame").remove();
        });     

После загрузки, если вы отправляете форму, измените цельформы:

// Because of  using iframe for upload set target value
$("#ipPoolForm").attr("target", "");
...