Android 保存图片到服务器,一般可以使用 HTTP POST 请求来实现。具体实现步骤如下:
Bitmap bitmap = BitmapFactory.decodeFile(photoPath);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
URL url = new URL(serverUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setConnectTimeout(5000);
conn.setRequestProperty("Charset", "UTF-8");
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
StringBuilder sb = new StringBuilder();
sb.append("--").append(boundary).append("\r\n");
sb.append("Content-Disposition: form-data; name=\"" + paramName + "\"; filename=\"" + fileName + "\"\r\n");
sb.append("Content-Type: image/png\r\n\r\n");
dos.write(sb.toString().getBytes());
dos.write(bytes);
dos.write("\r\n".getBytes());
dos.writeBytes("--" + boundary + "--\r\n");
int code = conn.getResponseCode();
if (code == HttpURLConnection.HTTP_OK) {
InputStream is = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
Log.d("Upload", "response: " + response.toString());
} else {
Log.d("Upload", "response code: " + code);
}
dos.flush();
is.close();
dos.close();
conn.disconnect();
以上就是 Android 保存图片到服务器的具体实现步骤。完整代码示例如下: