gpt4 book ai didi

android - 将图像上传到服务器android

转载 作者:IT老高 更新时间:2023-10-28 13:14:42 25 4
gpt4 key购买 nike

我想知道在不降低质量的情况下将图像上传到服务器的最佳方式是什么。我在谷歌上搜索发现了各种发布数据的方法。但我不确定哪一个最好上传。我遇到了

  1. 多部分图片上传。
  2. 使用字节数组上传图片
  3. 使用 base64 编码的字符串上传图片。

我已经尝试过 Base64 编码,如果图像的分辨率太高,它会导致我出现 OOM(内存不足)。任何解决此问题的教程将不胜感激。提前致谢。

最佳答案

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);

从图库中选择图片的代码

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1)
if (resultCode == Activity.RESULT_OK) {
Uri selectedImage = data.getData();

String filePath = getPath(selectedImage);
String file_extn = filePath.substring(filePath.lastIndexOf(".") + 1);
image_name_tv.setText(filePath);

try {
if (file_extn.equals("img") || file_extn.equals("jpg") || file_extn.equals("jpeg") || file_extn.equals("gif") || file_extn.equals("png")) {
//FINE
} else {
//NOT IN REQUIRED FORMAT
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

public String getPath(Uri uri) {
String[] projection = {MediaColumns.DATA};
Cursor cursor = managedQuery(uri, projection, null, null, null);
column_index = cursor
.getColumnIndexOrThrow(MediaColumns.DATA);
cursor.moveToFirst();
imagePath = cursor.getString(column_index);

return cursor.getString(column_index);
}

现在使用多部分表单数据发布数据

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("LINK TO SERVER");

多部分表单数据

MultipartEntity mpEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
if (filePath != null) {
File file = new File(filePath);
Log.d("EDIT USER PROFILE", "UPLOAD: file length = " + file.length());
Log.d("EDIT USER PROFILE", "UPLOAD: file exist = " + file.exists());
mpEntity.addPart("avatar", new FileBody(file, "application/octet"));
}

最终将数据发布到服务器

httppost.setEntity(mpEntity);
HttpResponse response = httpclient.execute(httppost);

关于android - 将图像上传到服务器android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20322528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com