Как загрузить несколько изображений на сервер PHP? - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть метод, который отправляет текстовое изображение с каждой командой, отправленной с 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";
    }
}
...