将多部分表单从android上传到vert.x

将多部分表单从android上传到vert.x,android,vert.x,Android,Vert.x,我正在尝试将带有其他参数的图像从Android上传到Vertex HttpServer。我想将参数存储到MySQL数据库中,并将图像写入文件。 我遇到的问题是,服务器只能完全接收第一个请求的映像字节。服务器只能部分接收以下请求的映像字节。所以我只能将部分图像上传到服务器。有人能帮我吗?谢谢 android中的代码如下所示: protected String doInBackground(String... params) { Uri.Builder builder =

我正在尝试将带有其他参数的图像从Android上传到Vertex HttpServer。我想将参数存储到MySQL数据库中,并将图像写入文件。 我遇到的问题是,服务器只能完全接收第一个请求的映像字节。服务器只能部分接收以下请求的映像字节。所以我只能将部分图像上传到服务器。有人能帮我吗?谢谢 android中的代码如下所示:

protected String doInBackground(String... params) {

            Uri.Builder builder = Uri.parse(params[0]).buildUpon();
            for (String name : LoginMap.keySet()) {
                builder.appendQueryParameter(name, LoginMap.get(name).toString());
            }

            String url = builder.build().toString();
            httpPost = new HttpPost(url);
            MultipartEntity mpEntity = new MultipartEntity();
            Log.i("filename", fileName);
            ContentBody mimePart = new ByteArrayBody(fileBytes, fileName);

            mpEntity.addPart("userfile", mimePart);

            httpPost.setEntity(mpEntity);

            String result = "";
            HttpResponse httpResponse = null;

            try {
                httpResponse = httpClient.execute(httpPost);

                InputStream inputStream = httpResponse.getEntity().getContent();

                if (inputStream != null) {
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                    String line = "";
                    while ((line = bufferedReader.readLine()) != null)
                        result += line;
                    inputStream.close();
                    Log.i("test",result);
                }
            } catch (Exception e) {
                Log.d("InputStream", e.getLocalizedMessage());
            }

            return result;

        }
服务器端的代码是:

else if (req.path().startsWith("/upload")) {
    req.expectMultiPart(true);

    // can put the pic name in url

    JsonArray fields = new JsonArray();
    JsonArray values = new JsonArray();   
    String[] pairs = req.query().split("&");    
    String[] each;

    for (String pair : pairs) {    
        each = pair.split("=");    
        fields.addString(each[0]);      
        // if(each[0].equals("pic_uri")){    
        // String[] pic = each[1].replace("%2F", 
        // "/").split("/");
        // values.addString(pic[pic.length-1]);    
        // }    
        // else     
        values.addString(each[1].replace("+", " ").replace("%20", " ").replace("%2F", "/"));
    }

    eb.send("io.vertx~mod-mysql-postgresql",    
    getInsertQuery("records", fields, values),    
    new Handler<Message<JsonObject>>() {  
        @Override    
        public void handle(Message<JsonObject> message) {
            System.out.println(message.body().toString());// debugging   
            if (message.body().getString("status").equals("ok")) {
                    req.response().putHeader( "content-type", "text/plain");
                    req.response().end(STATUS_OK);
                    req.response().close();
           } else {    
                    req.response().putHeader("content-type", "text/plain");
                    req.response().end("ERROR");
                    req.response().close();

          }
        }    
    });

    final Buffer body = new Buffer(0);
    System.out.println("ADDR : " + req.remoteAddress());
    req.dataHandler(new Handler<Buffer>() {    
        public void handle(Buffer buffer) {   
            System.out.println("I received " + buffer.length() + " bytes");    
            System.out.println("DATA");
            body.appendBuffer(buffer);    
        }   
    });

    req.uploadHandler(new Handler<HttpServerFileUpload>() {
        public void handle(HttpServerFileUpload upload) {   
            String name = upload.filename();    
            upload.streamToFileSystem("uploads/" + name);
            System.out.println("uploads/" + name); 
        }    
    });

  }