我是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));
我无法发送位图,而是收到错误。
答案 0 :(得分:0)
不要自己编写,而是考虑使用库。
有很好的网络库可以做到这一点,包括Retrofit和Volley。
如果你看,我确信还有包含上传和下载功能的图像处理库。