ネイティブの電話カメラを使用して写真を撮り、ビデオを録画する Android アプリケーションを完成させました。私は今、自分の携帯電話を使用して、これらのアイテムを自分のローカル Web サイトにリモートでアップロードしたいと考えています (Apache を Web サーバーとして、MySQL をデータベース スクリプト言語として php を使用)。ただし、この Web サイトはローカルで実行されています。私はアドホックを作成することを望んでいました。ローカル Web アプリケーションにデータを正常にアップロードできるように、携帯電話の送信ボタンを適切なパラメーターでプログラムするのを誰かが手伝ってくれませんか。事前にサンクス。
質問する
429 次
2 に答える
1
通常、Android で画像や動画をアップロードするには、マルチパート リクエストが使用されます。 このリンクは、Android でのマルチパートの基本的な紹介です。
于 2012-04-30T08:53:14.510 に答える
1
@Antrromet が言ったように、Multipartで HttpPost を使用してファイルを送信する必要があります。
これは、 httpmime Apache ライブラリBitmap
を使用して、マルチパートで を送信するメソッドの例です( 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 に答える