2016-04-19 4 views
0

Ich lade Dateien über eine Ajax-Interaktion hoch. Ich möchte zusammen Informationen senden, um einen Serverpfad zu erstellen. Aber ich weiß nicht, ob es möglich ist und wie ich es machen könnte.Es ist möglich, andere Daten zusammen mit Dateien in Ajax zu senden?

function uploadFD(){ 

    var oMyForm = new FormData(); 

    jQuery.each(jQuery('#file')[0].files, function(i, file) { 
     oMyForm.append('file-'+i, file); 
    }); 

    $.ajax({ 
     url: 'FileController', 
     data: oMyForm, 
     processData: false, 
     contentType: false, 
     type: 'POST', 
     success: function(data){ 
       $('#Result').html(data.msg); 
       $.messager.show({ 
        title : 'Success', 
        msg : data.msg, 
        showType : 'show' 
       }); 
     } 
    }); 
} 

Controller:

@RequestMapping(method = RequestMethod.POST, headers = "content-type=multipart/*") 
    public void upload(MultipartHttpServletRequest request, 
      HttpServletResponse response) { 

    response.setCharacterEncoding("UTF-8"); 

    Iterator<String> itr = request.getFileNames(); 

    MultipartFile mpf = request.getFile(itr.next()); 
    System.out.println(mpf.getOriginalFilename() +" uploaded!"); 
    //... other stuff 
} 

Wie könnte ich es tun? Vielen Dank!

+1

Sie können 'oMyForm.append()' zu fügen Sie den Formulardaten weitere Parameter hinzu. – Barmar

Antwort

1

Ja, es ist möglich. Der zweite Parameter zu FormData.append kann auch ein einfacher String sein:

oMyForm.append('param', 'value'); 

und Sie können den Parameterwert auf dem Server über request.getParameter() zugreifen:

String v = request.getParameter("param"); 
+0

guten einen! Vielen Dank! – Alex

Verwandte Themen