2016-11-29 6 views
0

Как получить параметры POST в методе NanoHttpd Serve. Это мой HTML форму нижеЗагрузка файла на сервер nanoHttpd 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 не в состоянии получить даже длину содержимого для файла, который представлен через форму

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()); 
      } 

     } 

} 

}

И ответ от этого кода:

conLen null ключ: postData значение: ------ WebKitFormBoundaryt5gZYrmlLiPVa6aM Content-Disposition: form-data; имя = "ExtraData" тест ------ WebKitFormBoundaryt5gZYrmlLiPVa6aM--

+0

Пожалуйста, покажите полную функцию 'serve()'. – greenapps

+0

Используйте другой метод 'serve()'. Тот, который поставляется со многими параметрами. Работает намного проще. – greenapps

ответ

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")); 
} 

На самом деле проблема была с сервером NanoHTTPD. Я изменил версию 2.1.1 и теперь работает так, как должно быть. С помощью кода выше я могу получить загруженный файл.

 Смежные вопросы

  • Нет связанных вопросов^_^