簡體   English   中英

將文件上傳到nanoHttpd服務器Android

[英]Uploading file to nanoHttpd server Android

如何在NanoHttpd Serve方法中檢索POST參數。 這是我的HTML表格波紋管

<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>

我什至無法獲得通過表單提交的文件的內容長度

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

        }

}

}

這段代碼的響應是:

conNen空鍵:postData值:------ WebKitFormBoundaryt5gZYrmlLiPVa6aM內容處置:form-data; name =“ extradata”測試------ WebKitFormBoundaryt5gZYrmlLiPVa6aM--

       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版本,現在可以正常工作了。 使用上面的代碼,我可以獲取上傳的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM