我正在尝试使用 Apache Commons HttpClient 在 Android 设备上发布相机拍摄的图像和一些其他参数。
我的发布请求工作正常,服务器读取参数正常,但我的图片没有上传。上传由 PHP 脚本处理,我可以确认正确的 HTTP Post 将导致图像被成功上传,因为我已经使用 HTML 表单测试了 PHP 脚本。我还可以在下面的代码中确认 photo != null 。
HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("http://myurl.com/upload.php");
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
if (photo != null) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
photo.compress(CompressFormat.JPEG, 75, bos);
byte[] data = bos.toByteArray();
ByteArrayBody bab = new ByteArrayBody(data, "submission-1.jpg");
reqEntity.addPart("file", bab);
}
reqEntity.addPart("date", new StringBody(date));
reqEntity.addPart("lat", new StringBody(latitude));
reqEntity.addPart("long", new StringBody(longitude));
reqEntity.addPart("name", new StringBody(name));
reqEntity.addPart("email", new StringBody(email));
reqEntity.addPart("comments", new StringBody(comments));
postRequest.setEntity(reqEntity);
HttpResponse response = httpClient.execute(postRequest);