2012-03-02 6 views
4

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

+0

пытались этот пример [FileUploadUsingAjax] (http://code.google.com/p/ajax-file-upload-struts2/downloads/list) –

+0

это пакеты jar и zip, что нужно сделать, можете ли вы, пожалуйста, направить меня, какой поток нужно адаптировать? –

+1

@EricIlavia: следуйте этому http://stackoverflow.com/questions/5270288/upload-file-in-struts2-using-ajax –

ответ

0

Я предлагаю использовать 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", ""); 
Смежные вопросы