android 上传图片
时间: 2023-11-05 07:05:11 浏览: 67
要在 Android 中上传图片,可以使用以下步骤:
1. 在 AndroidManifest.xml 文件中添加以下权限:
```
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
2. 在你的布局 XML 文件中添加一个 ImageView,用于显示选定的图片。
3. 在你的 Activity 中添加以下代码:
```
// 创建一个 Intent,用于选择图片
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE);
// 处理选择图片的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
// 在 ImageView 中显示选定的图片
ImageView imageView = (ImageView) findViewById(R.id.imageView);
Bitmap bitmap = BitmapFactory.decodeFile(filePath);
imageView.setImageBitmap(bitmap);
// 将图片上传到服务器
uploadImage(filePath);
}
}
// 上传图片到服务器
private void uploadImage(String filePath) {
// 创建一个文件对象
File file = new File(filePath);
// 创建一个 OkHttpClient 对象
OkHttpClient client = new OkHttpClient();
// 创建一个 RequestBody 对象
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("image/jpeg"), file))
.build();
// 创建一个 Request 对象
Request request = new Request.Builder()
.url("http://example.com/upload")
.post(requestBody)
.build();
// 发送请求并处理响应
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// 处理请求失败的情况
}
@Override
public void onResponse(Call call, Response response) throws IOException {
// 处理请求成功的情况
}
});
}
```
这样,就可以在 Android 应用中上传图片了。
阅读全文