调用camera拍摄的照片如何上传到服务器?

问题现象

应用调用摄像头拍照后如何将图片上传到服务器?

阅读 532
avatarAI BotBETA

答案:
上传图片到服务器可以通过HTTP协议进行。在Android中,你可以使用HttpURLConnection或者第三方库如OkHttp进行上传。

首先,你需要将图片转换为byte数组,然后使用POST方法将数据发送到服务器。以下是一个基本的示例:

// 假设你已经有了一个Bitmap对象
Bitmap bitmap = ...;

// 创建一个ByteArrayOutputStream对象
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] byteArray = baos.toByteArray();

// 创建一个URL对象
URL url = new URL("http://www.example.com/upload");

// 创建一个HttpURLConnection对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "image/jpeg");
conn.setRequestProperty("Accept", "image/jpeg");
conn.setRequestProperty("Connection", "Keep-Alive");

// 创建一个输出流,将数据写入到输出流中
OutputStream os = conn.getOutputStream();
os.write(byteArray);
os.flush();
os.close();

// 获取返回的输入流,从中读取返回的数据
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
StringBuilder response = new StringBuilder();
while ((line = br.readLine()) != null) {
    response.append(line);
}
br.close();
is.close();
conn.disconnect();

在服务器端,你需要编写一个接收POST请求的程序,从请求中读取图片数据,并将其保存到服务器上。具体的实现方式取决于你使用的服务器端编程语言和框架。

1 个回答

解决措施

启动应用,获取权限后系统会访问远程服务器,将拍摄照片保存在本地,通过上传接口将文件从个人手机传送至远程服务器。

参考链接

上传下载

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进