Try to upload the image in php server but it could post. in android

前端 未结 2 1967
旧巷少年郎
旧巷少年郎 2020-12-16 08:27

I try to upload the image in server through the gallery with other entries like name DOB id etc , all the entries are uploaded except image in php server , I did not under s

相关标签:
2条回答
  • 2020-12-16 09:11

    if ulr like this http://iapaaaa.com/snapic/profileXml.php?user_id=2&name=joe&dob=2000-01-10&bio=bla bla bla&sex=1&profile_status=0&location=England&userfile=user_photo.png

    use this code BitmapFactory.Options options = new BitmapFactory.Options();

                // Decode bitmap with inSampleSize set
                options.inJustDecodeBounds = true;
                // image path `String` where your image is located
                BitmapFactory.decodeFile(selectedPath1, options);
    
                int bitmapWidth = 400;
                int bitmapHeight = 250;
                final int height = options.outHeight;
                final int width = options.outWidth;
                int inSampleSize = 1;
                if (height > bitmapHeight || width > bitmapWidth) {
                    if (width > height) {
                        inSampleSize = Math.round((float) height
                                / (float) bitmapHeight);
                    } else {
                        inSampleSize = Math.round((float) width
                                / (float) bitmapWidth);
                    }
                }
    
                options.inJustDecodeBounds = false;
                options.inSampleSize = inSampleSize;
    
                Bitmap bmpScale = BitmapFactory.decodeFile(selectedPath1,
                        options);
    
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
    
                // CompressFormat set up to JPG, you can change to PNG or
                // whatever you
                // want;
    
                bmpScale.compress(CompressFormat.JPEG, 100, bos);
                bmpScale.compress(CompressFormat.JPEG, 100, bos);
    
                byte[] data = bos.toByteArray();
                MultipartEntity entity = new MultipartEntity(
                        HttpMultipartMode.BROWSER_COMPATIBLE);
                // entity.addPart("avatar", new ByteArrayBody(data,mSignMessg +
                // "-" + new Random().nextInt(1000) + ".jpg"));
    
                entity.addPart("userfile", new ByteArrayBody(data, "pic.jpg"));
                // add your other name value pairs in entity.
                ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    
                nameValuePairs
                        .add(new BasicNameValuePair("user_id", mSignMessg));
                nameValuePairs.add(new BasicNameValuePair("name", mname
                        .getText().toString()));
                nameValuePairs.add(new BasicNameValuePair("dob", mbirthday
                        .getText().toString()));
                nameValuePairs.add(new BasicNameValuePair("bio", mbio.getText()
                        .toString()));
                nameValuePairs.add(new BasicNameValuePair("sex", mSexValue));
                nameValuePairs
                        .add(new BasicNameValuePair("profile_status", "0"));
                nameValuePairs.add(new BasicNameValuePair("location", mlocation
                        .getText().toString()));
    
                // nameValuePairs.add(new BasicNameValuePair("image", ba1));
                Log.d("userfile", "userfile " + ba1);
    
                // nameValuePairs.add(new BasicNameValuePair("image”, ba1));
    
                for (int i = 0; i < nameValuePairs.size(); i++) {
    
                    try {
                        entity.addPart(
                                nameValuePairs.get(i).getName(),
                                new StringBody(nameValuePairs.get(i).getValue()));
                    } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        Log.d("respons", "image respons " + e);
                        e.printStackTrace();
                    }
    
                }
    
                // httppost.setEntity(entity);
                //
                // HttpResponse response = httpClient.execute(httppost);
    
                try {
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://technologies.com/snapic/profileXml.php");
    
                    httppost.setEntity(entity);
    
                    Log.d("nameValuePairs", "nameValuePairs " + nameValuePairs);
    
                    HttpResponse response = httpclient.execute(httppost);
                    HttpEntity entity1 = response.getEntity();
    
                    // print responce
                    outPut = EntityUtils.toString(response.getEntity());
                    Log.i("GET RESPONSE—-", outPut);
                    Log.d("GET RESPONSE—-", outPut);
    
                    // is = entity.getContent();
                    Log.e("log_tag ******", "good connection");
                    System.out.println("gudconection");
                    Log.d("god connection ", "gud connection ");
    
                    bitmapOrg.recycle();
    
                } catch (Exception e) {
    
                    Log.e("logCatch block***",
                            "Error in http connection " + e.toString());
                    Log.d("log_catch block ******", "Error in http connection "
                            + e.toString());
                }
    
    0 讨论(0)
  • 2020-12-16 09:27

    Following code will first compress image with resolution, and then set MultiPart entity and send data over web via POST method.

    BitmapFactory.Options options = new BitmapFactory.Options();
    
        // Decode bitmap with inSampleSize set
        options.inJustDecodeBounds = true;
        // image path `String` where your image is located
        BitmapFactory.decodeFile(imagePath, options);
    
        int bitmapWidth = 400;
        int bitmapHeight = 250;
    
        final int height = options.outHeight;
        final int width = options.outWidth;
        int inSampleSize = 1;
    
        if (height > bitmapHeight || width > bitmapWidth) {
            if (width > height) {
                inSampleSize = Math
                        .round((float) height / (float) bitmapHeight);
            } else {
                inSampleSize = Math.round((float) width / (float) bitmapWidth);
            }
        }
    
        options.inJustDecodeBounds = false;
        options.inSampleSize = inSampleSize;
    
    
        // you can change the format of you image compressed for what do you
        // want;
        // now it is set up to 640 x 480;
    
        Bitmap bmpScale = BitmapFactory.decodeFile(imagePath, options);
    
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
    
        // CompressFormat set up to JPG, you can change to PNG or whatever you
        // want;
    
        bmpScale.compress(CompressFormat.JPEG, 100, bos);
    
        byte[] data = bos.toByteArray();
    
        MultipartEntity entity = new MultipartEntity(
                HttpMultipartMode.BROWSER_COMPATIBLE);
    
        entity.addPart("avatar", new ByteArrayBody(data,"pic.jpg"
                ));
    
        //add your other name value pairs in entity.
    
        for (int i = 0; i < nameValuePairs.size(); i++) {
            entity.addPart(nameValuePairs.get(i).getName(), new StringBody(
                    nameValuePairs.get(i).getValue()));
        }
    
        httppost.setEntity(entity);
    
        HttpResponse response = httpClient.execute(httppost);
    

    Edit

    Oh.. sorry, i forgot to inform. Yes there is a jar named httpmime-4.2.2 and httpclient.jar. You can download it from Apache Site. Just extract package, and you will get directory of lib.

    0 讨论(0)
提交回复
热议问题