Issue in multiple image sending to sever in androi

2019-06-06 07:29发布

I have uploading the multiple image and some string data to php server.If i have send 3 images means the url call 3 times and also 1st image send one time,2nd image will save to server as 2 times,3rd image will save 3 times.How to send 3 image at once and also url call at once.I have tried something like this

class ImageUploadTask extends AsyncTask {
       String sResponse = null;

@Override
protected void onPreExecute() {
    // TODO Auto-generated method stub
    super.onPreExecute();
    dialog = ProgressDialog.show(Room_addroom1.this, "Uploading",
            "Please wait...", true);
    dialog.show();
}

@Override
protected String doInBackground(String... params) {
    try {

        String url ="http://airbnb.abservetech.com/demo/public/mobile/hotel/roomsadd";
        int i = Integer.parseInt(params[0]);
        System.out.println("i---"+i);   

        SharedPreferences prefs = getSharedPreferences(MyPREFERENCES, MODE_PRIVATE);
        String userID = prefs.getString("userid", null);

        Bitmap bitmap = decodeFile(map.get(i));

        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
        HttpPost httpPost = new HttpPost(url);
        entity = new MultipartEntity();

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
        byte[] data = bos.toByteArray();    

        byte[] res=bos.toByteArray();    

        entity.addPart("room_images", new ByteArrayBody(data,
                "image/jpeg", params[1]));    

        entity.addPart("user_id", new StringBody("52"));
        entity.addPart("room_type",new StringBody( "premium"));
        entity.addPart("room_prize", new StringBody("2356"));    

        httpPost.setEntity(entity);

        ByteArrayOutputStream bytes = new ByteArrayOutputStream();

        entity.writeTo(bytes);
        Log.e("mainToPost", "roommainToPost----" + entity.toString());

        HttpResponse response = httpClient.execute(httpPost,
                localContext);
        sResponse = EntityUtils.getContentCharSet(response.getEntity());    

    } catch (Exception e) {
        if (dialog.isShowing())
            dialog.dismiss();
        Log.e(e.getClass().getName(), e.getMessage(), e);

    }
    return sResponse;
}

@Override
protected void onPostExecute(String sResponse) {
    try {
        if (dialog.isShowing())
            dialog.dismiss();

        if (sResponse != null) {
            Toast.makeText(getApplicationContext(),
                    sResponse + " Photo uploaded successfully",
                    Toast.LENGTH_SHORT).show();
            count++;
            if (count < map.size()) {
                new ImageUploadTask().execute(count + "", "hm" + count
                        + ".jpg");
            }
        }

    } catch (Exception e) {
        Toast.makeText(getApplicationContext(), e.getMessage(),
                Toast.LENGTH_LONG).show();
        Log.e(e.getClass().getName(), e.getMessage(), e);
    }    
}

0条回答
登录 后发表回答