android中多个图像发送到服务器的问题

时间:2016-08-31 04:29:56

标签: php android multipartentity

我已将多个图像和一些字符串数据上传到php服务器。如果我发送了3个图像,则表示网址调用3次,第1个图像发送一次,第2个图像将保存到服务器2次,第3个图像将保存3次。如何一次发送3张图片,并立即拨打网址。我尝试过这样的事情

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 个答案:

没有答案