如何在不转换为Android的Base64的情况下将图像上传到服务器?

时间:2015-07-24 10:12:46

标签: java android android-studio android-bitmap

我是android studio的新手。 我想将图像上传到服务器而不将其转换为base64字符串。 我不知道该怎么做。这是我的代码:

//This is my code
Bitmap bitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);

HttpClient Client = new DefaultHttpClient();
HttpPost Post = new HttpPost("url/uploadphoto.php");

            Log.d("HTTPPSt", "" + Post);
            // Building post parameters
            // key and value pair
            List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(1);
            nameValuePair.add(new BasicNameValuePair("image", bitmap));

            // Url Encoding the POST parameters
            try {
                Post.setEntity(new UrlEncodedFormEntity(nameValuePair));

            } catch (UnsupportedEncodingException e) {
                // writing error to Log
                e.printStackTrace();
            }
            // Making HTTP Request
            try {
                HttpResponse response = Client.execute(Post);
                StatusLine statusLine=response.getStatusLine();
                // writing response to log
                Log.d("Http Response:", response.toString());
                Log.d("statusline:", ""+statusLine);

            } catch (ClientProtocolException e) {
                // writing exception to log
                e.printStackTrace();
            } catch (IOException e) {
                // writing exception to log
                e.printStackTrace();
            }

我有这个问题:

nameValuePair.add(new BasicNameValuePair("image", bitmap));

我无法发送位图,而是收到错误。

1 个答案:

答案 0 :(得分:0)

不要自己编写,而是考虑使用库。

有很好的网络库可以做到这一点,包括Retrofit和Volley。

如果你看,我确信还有包含上传和下载功能的图像处理库。