2016-11-29 3 views
0

Wie kann ich POST-Parameter in NanoHttpd Serve-Methode abrufen. Das ist mein HTML-Formular untenHochladen von Datei auf nanoHttpd Server Android

<form name="a" enctype="multipart/form-data\ method="post" >" 
    <input type="file" name"file" multiple/>"+ 
    <input type="hidden" name="extradata" value="test"/> 
    <input type="submit" value="upload" > 
</form> 

Im nicht in der Lage, auch die Inhaltslänge für Datei durch die

public Response serve(IHTTPSession session) { 
     Map<String, String> params = session.getParms();       
     Map<String, String> files = new HashMap<String, String>(); 
     if (Method.POST.equals(session.getMethod()) || Method.PUT.equals(session.getMethod())) { 
      try { 
       session.parseBody(files);  
       StringBuilder builder = new StringBuilder();  
       builder.append("| conLen " + (session.getHeaders().get("content-length")) + "| \n");  
       Set keys = files.keySet(); 
       for (Object key : keys) { 
        builder.append(" key: " + key + " value: " + files.get(key) + "\n"); 
       } 
       return new Response(builder.toString()); 
      } catch (Exception ex) { 
       Log.d("server", ex.toString()); 
      } 

     } 

} 

}

Und Antwort von diesem Code

Form vorgelegt werden zu bekommen, ist:

conLen null Schlüssel: postData-Wert: ------ WebKitFormBoundaryt5gZYrmlLiPVa6aM Content-Disposition: Formulardaten; name = "Extrainformationen" test ------ WebKitFormBoundaryt5gZYrmlLiPVa6aM--

+0

Bitte zeigen Sie die vollständige 'serve()' Funktion an. – greenapps

+0

Bitte verwenden Sie die andere 'serve()' Methode. Der, der mit vielen Parametern kommt. Funktioniert viel einfacher. – greenapps

Antwort

0
 if (Method.POST.equals(session.getMethod()) || Method.PUT.equals(session.getMethod())) { 
      Log.d("server","inside receive file!"); 
      try{session.parseBody(files);}catch (Exception e){Log.d("server","error on parseBody" +e.toString());} 


      File file = new File(files.get("uploadFile")); 
} 

Eigentlich war das Problem mit NanoHTTPD Server. Ich habe die Version 2.1.1 geändert und funktioniert jetzt so, wie es sein sollte. Mit dem obigen Code kann ich die hochgeladene Datei erhalten.

Verwandte Themen