У меня есть метод, который отправляет текстовое изображение с каждой командой, отправленной с Android на сервер PHP.В PHP Server я могу отправить более одного изображения на сервер через веб-форму.
Как можно загрузить более одного изображения с Android на сервер, выбрав изображения в галерее и отправив на сервер с помощьюодна команда загрузки?То есть, как заставить этот метод Android отправлять несколько изображений в код в PHP?
Метод, который я использую для загрузки изображения через Android, выглядит следующим образом:
private String uploadFile() {
String responseString = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = null;
File sourceFile = null;
try {
sourceFile = new File(imageStoragePath);
} catch (Exception e) {
e.printStackTrace();
}
httppost = new HttpPost(ConfigEnderecosURL.URL_ImagemEnviaImagem);
try {
ImagemCameraEnviaImagemMultiPart entity = new ImagemCameraEnviaImagemMultiPart(
new ImagemCameraEnviaImagemMultiPart.ProgressListener() {
@RequiresApi(api = Build.VERSION_CODES.CUPCAKE)
@Override
public void transferred(long num) {
publishProgress((int) ((num / (float) totalSize) * 100));
}
});
try {
String comentario = edComentario.getText().toString();
// Adding file data to http body
entity.addPart("image", new FileBody(sourceFile));
entity.addPart("usuario_id", new StringBody(idUsuario));
entity.addPart("profissao", new StringBody(profissao, Charset.forName(HTTP.UTF_8)));
entity.addPart("profissao_id", new StringBody(idProfissao));
entity.addPart("comentario", new StringBody(comentario, Charset.forName(HTTP.UTF_8)));
} catch (Exception e) {
e.printStackTrace();
}
totalSize = entity.getContentLength();
httppost.setEntity(entity);
// Making server call
HttpResponse response = httpclient.execute(httppost);
HttpEntity r_entity = response.getEntity();
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
// Server response
responseString = EntityUtils.toString(r_entity);
} else {
responseString = "erro";
}
return responseString;
} catch (ClientProtocolException e) {
responseString = "erro";
e.printStackTrace();
} catch (Exception e) {
responseString = "erro";
e.printStackTrace();
}
return responseString;
}
В PHP естькласс получает несколько файлов, загруженных через веб-форму.
$diretorio = "imagens/";
$arquivo = isset ( $_FILES ['arquivo'] ) ? $_FILES ['arquivo'] : FALSE;
for($controle = 0; $controle < count ( $arquivo ['name'] ); $controle ++) {
$destino = $diretorio . "/" . $arquivo ['name'] [$controle];
if (move_uploaded_file ( $arquivo ['tmp_name'] [$controle], $destino )) {
echo "Upload realizado com sucesso.<br>";
} else {
echo "Erro ao realizar upload";
}
}