我有代码将图像上传到服务器,它的工作原理,
HttpEntity resEntity; HttpClient httpClient = new DefaultHttpClient(); HttpPost post = new HttpPost(Constants.url_create_product); MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); File file= new File(path); FileBody bin = new FileBody(file); reqEntity.addPart("phone",new StringBody(mPhoneNumber)); reqEntity.addPart("prod_title",new StringBody(namapro)); reqEntity.addPart("prod_price",new StringBody(hargapro)); reqEntity.addPart("prod_desc",new StringBody(despro)); reqEntity.addPart("prod_order",new StringBody(orderpro)); reqEntity.addPart("prod_image",bin); post.setEntity(reqEntity); HttpResponse response = httpClient.execute(post); resEntity = response.getEntity(); String response_str = EntityUtils.toString(resEntity); Gson gson = new Gson(); gson.toJson(response_str); if (resEntity != null) { Log.i("RESPONSE",response_str); runOnUiThread(new Runnable(){ public void run() { try { Toast.makeText(getApplicationContext(),"Upload Complete. Check the server uploads directory.",Toast.LENGTH_LONG).show(); } catch (Exception e) { e.printStackTrace(); } } }); }
但我有菜单图像编辑器.该编辑器是裁剪图像,并且该代码返回位图值
Bundle extras = data.getExtras(); if (extras != null) { photo = extras.getParcelable("data"); mImageView.setImageBitmap(photo); } File f = new File(mImageCaptureUri.getPath()); if (f.exists()) f.delete(); break;
我想问,如何使用参数位图将图像发送到服务器.你知道我的代码发送图像现在使用参数路径(字符串).
解决方法
ByteArrayOutputStream baos = new ByteArrayOutputStream(); photo.compress(Bitmap.CompressFormat.JPEG,100,baos); byte[] imageBytes = baos.toByteArray(); String encodedImage = Base64.encodeToString(imageBytes,Base64.DEFAULT);
然后发送这个encodedImage作为一个字符串,并在您的服务器您将需要解码它,以获得图像本身.