android 仿微信demo————注册功能完善添加头像功能(服务端)

11

android 仿微信demo————注册功能完善添加头像功能(服务端)

Android仿微信 demo——注册功能完善添加头像功能(服务端)

在前面的文章中,我们已经完成了 Android仿微信 demo 的注册功能实现,包括移动端和服务端的开发。然而,在实际应用中,用户需要能够上传自己的头像来完善个人信息。这一功能是非常重要的,也是我们今天要讨论的内容。

服务端设计

首先,我们需要在服务端添加一个新的接口来处理头像上传请求。这个接口应该能够接受图片文件,并将其保存到服务器上。

1. 新增接口```java// HeadImageController.java@RestController@RequestMapping("/api")

public class HeadImageController {

@PostMapping("/headimage/upload")

public Result uploadHeadImage(@RequestParam("file") MultipartFile file) {

// 处理文件上传逻辑 return Result.success();

}

}

```

2. 文件上传逻辑```java// FileUtil.javapublic class FileUtil {

public static String uploadFile(MultipartFile file) throws IOException {

// 获取文件名 String fileName = file.getOriginalFilename();

// 创建文件夹 File folder = new File("headimages");

if (!folder.exists()) {

folder.mkdirs();

}

//保存文件 File targetFile = new File(folder, fileName);

file.transferTo(targetFile);

return targetFile.getAbsolutePath();

}

}

```

3. 接口实现```java// HeadImageController.java (续)

@PostMapping("/headimage/upload")

public Result uploadHeadImage(@RequestParam("file") MultipartFile file) {

try {

String filePath = FileUtil.uploadFile(file);

// 将文件路径保存到数据库中 return Result.success();

} catch (IOException e) {

return Result.fail();

}

}

```

移动端实现

在移动端,我们需要添加一个新的 Activity 来处理头像上传逻辑。这个 Activity 应该能够打开相册,选择图片,并将其上传到服务端。

1. 新增 Activity```java// HeadImageActivity.javapublic class HeadImageActivity extends AppCompatActivity {

private static final int REQUEST_CODE =100;

@Override protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_head_image);

// 初始化按钮 Button button = findViewById(R.id.button);

button.setOnClickListener(new View.OnClickListener() {

@Override public void onClick(View v) {

// 打开相册 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 (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {

// 获取选中的图片 Uri uri = data.getData();

String imagePath = getPathFromUri(uri);

//上传图片 uploadImage(imagePath);

}

}

private String getPathFromUri(Uri uri) {

String[] projection = {MediaStore.Images.Media.DATA};

Cursor cursor = getContentResolver().query(uri, projection, null, null, null);

int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

cursor.moveToFirst();

return cursor.getString(columnIndex);

}

private void uploadImage(String imagePath) {

// 创建 MultipartEntity MultipartEntity entity = new MultipartEntity();

// 添加文件 File file = new File(imagePath);

entity.addPart("file", new FileBody(file));

// 发送请求 HttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost(" post.setEntity(entity);

try {

HttpResponse response = client.execute(post);

int statusCode = response.getStatusLine().getStatusCode();

if (statusCode ==200) {

// 处理响应 String responseBody = EntityUtils.toString(response.getEntity());

Log.d("HeadImageActivity", responseBody);

} else {

Log.e("HeadImageActivity", "Error: " + statusCode);

}

} catch (IOException e) {

Log.e("HeadImageActivity", "Error: " + e.getMessage());

}

}

}

```

以上就是 Android仿微信 demo——注册功能完善添加头像功能(服务端)的详细描述。希望通过阅读这个文档,你能够轻松地实现这一功能。

注册功能头像仿微信demo注册功能添加头像

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 微信注册小号,不用新手机号就可以注册

下一篇 android虚拟机注册微信,用安卓模拟器登微信号不被封的办法