Android上传bitmap图片至Web的方法

标签: Android Bitmap
发布时间: 2013/2/20 15:56:47
// create a bitmap variable before anything;
 
private Bitmap bitmap;
 
// variable to set a name to the image into SD card;
// this variable, you have to put the path for the File, It's up to you;
 
public static String exsistingFileName;
 
// sendData is the function name, to call it, you can use something like sendData(null);
// remember to wrap it into a try catch;
 
public void sendData(String[] args) throws Exception {
    try {
 
        HttpClient httpClient = new DefaultHttpClient();
        HttpContext localContext = new BasicHttpContext();
 
        // here, change it to your php;
 
        HttpPost httpPost = new HttpPost("http://www.myURL.com/myPHP.php");
        MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
        bitmap = BitmapFactory.decodeFile(exsistingFileName);
 
        // you can change the format of you image compressed for what do you want;
        //now it is set up to 640 x 480;
 
        Bitmap bmpCompressed = Bitmap.createScaledBitmap(bitmap, 640, 480, true);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
 
        // CompressFormat set up to JPG, you can change to PNG or whatever you want;
 
        bmpCompressed.compress(CompressFormat.JPEG, 100, bos);
        byte[] data = bos.toByteArray();
 
        // sending a String param;
 
        entity.addPart("myParam", new StringBody("my value"));
 
        // sending a Image;
        // note here, that you can send more than one image, just add another param, same rule to the String;
 
        entity.addPart("myImage", new ByteArrayBody(data, "temp.jpg"));
 
        httpPost.setEntity(entity);
        HttpResponse response = httpClient.execute(httpPost, localContext);
        BufferedReader reader = new BufferedReader(new InputStreamReader( response.getEntity().getContent(), "UTF-8"));
        String sResponse = reader.readLine();
 
    } catch (Exception e) {
 
        Log.v("myApp", "Some error came up");
 
    }
 
}


官方微信
官方QQ群
31647020