我刚刚完成了我的 android 应用程序,它使用本机手机摄像头拍照并录制视频。我现在想用我的手机在我的本地网站上远程上传这些项目(Apache 作为网络服务器,MySQL 作为数据库脚本语言是 php)。但是,该网站在本地运行。我希望创建一个临时的。有人可以帮我用正确的参数在我的手机上编程我的提交按钮,以便成功地将我的数据上传到我的本地 Web 应用程序上。提前谢谢。
问问题
429 次
2 回答
1
正如@Antrromet 所说,您必须使用 HttpPost 和Multipart发送文件。
Bitmap
这是使用httpmime apache 库以多部分方式发送 a 的方法示例(查看MultipartEntity):
public String doHttpMultipart(String url,
List<NameValuePair> pairs,
Bitmap bitmap,
String fileName) throws IOException,
ClientProtocolException,
UnsupportedEncodingException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 100, bos);
byte[] imageData = bos.toByteArray();
ByteArrayBody byteArrayBody = new ByteArrayBody(imageData, fileName);
MultipartEntity reqEntity =
new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("image", byteArrayBody);
for(NameValuePair p : pairs) {
reqEntity.addPart(p.getName(), new StringBody(p.getValue()));
}
HttpPost request = new HttpPost(url);
request.setEntity(reqEntity);
HttpClient client = new DefaultHttpClient();
HttpResponse httpResponse = client.execute(request);
String response = "";
BufferedReader in = null;
try {
response = super.readHttpStream(response, in, httpResponse);
} catch(IllegalStateException e) {
throw new IllegalStateException();
} catch(IOException e) {
throw new IOException();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return response;
}
在这种方法中,我还随请求发送了一个参数列表,并从服务器读取响应。
在后端,您将收到$_FILES变量中的二进制数据。
于 2012-04-30T09:41:51.297 回答
1
要在 android 中上传图像或视频,通常会使用 Multipart 请求,请查看该请求。 此链接对 android 中的 multipart 进行了基本介绍。
于 2012-04-30T08:53:14.510 回答