【发布时间】:2019-09-04 01:45:57
【问题描述】:
我需要将 jpg 图像从我的 android 应用程序发送到我的网络服务并将其存储在我的数据库中。我正在使用 android studio,我的网络服务是带有苗条框架的 Php Rest。我真的不知道该怎么办。
【问题讨论】:
-
您需要先进行研究和尝试,然后在遇到问题时发布问题。
-
这不是问题。这是一个待办事项列表。
我需要将 jpg 图像从我的 android 应用程序发送到我的网络服务并将其存储在我的数据库中。我正在使用 android studio,我的网络服务是带有苗条框架的 Php Rest。我真的不知道该怎么办。
【问题讨论】:
几天前我也这样做了……我这样做了:
图片转Base64(字节数组=>字节[])
将字节[]转换为字符串
使用 httpPost 向服务器发送字符串
这是我转换图像的代码:
public String formatPhoto_JPEGtoByteArray (String uri){
// Read bitmap from file
Bitmap bitmap = null;
InputStream stream = null;
ByteArrayOutputStream byteStream = null;
try {
stream = new BufferedInputStream(new FileInputStream(new File(uri)));
bitmap = BitmapFactory.decodeStream(stream);
byteStream = new ByteArrayOutputStream();
Matrix matrix = new Matrix();
matrix.postRotate(90);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, byteStream);
// Convert ByteArrayOutputStream to byte array. Close stream.
byte[] byteArray = byteStream.toByteArray();
Log.e("-- FilesAndFolders.formatPhoto_JPEGtoByteArray --","Last file of size: " + byteArray.length);
//160 kb = 163840 bytes
//if(byteArray.length == 163840){
// //Declaration of variables
// int tantXcent = (160 * 100) / byteArray.length;
// byteStream = new ByteArrayOutputStream();
// bitmap.compress(Bitmap.CompressFormat.JPEG, tantXcent, byteStream);
// // Convert ByteArrayOutputStream to byte array. Close stream.
// byteArray = byteStream.toByteArray();
// Log.e("-- FilesAndFolders.formatPhoto_JPEGtoByteArray --","Actual size of file: " + byteArray.length );
//}
String imageEncoded = Base64.encodeToString(byteArray, Base64.NO_WRAP);
byteStream.close();
byteStream = null;
return imageEncoded;
}
catch (IOException ex) {
Log.e("-- GeneralMethods.formatPhoto --", "Exception with " + uri,ex);
return null;
}
catch (Exception ex){
Log.e("-- GeneralMethods.formatPhoto --", "Exception with " + uri,ex);
return null;
}
finally {
try {
if (stream != null) stream.close();
if (byteStream != null) byteStream.close();
} catch (Exception e) {}
}
}
告诉我我是否帮助过你并且编程很好!
【讨论】: