Subir varios archivos de imagen al servidor php desde la aplicación android

Soy nuevo a la programación del androide. He estado intentando cargar varias imágenes de mi aplicación al servidor usando el siguiente código. Aquí la matriz de la imagen [] se fija al servidor con otros datos como username, contraseña, etc que está en namevaluepair.

Código Java:

public void post(String url, List<NameValuePair> nameValuePairs) { HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); try { MultipartEntity entity = new MultipartEntity( HttpMultipartMode.BROWSER_COMPATIBLE); for (int index = 0; index < nameValuePairs.size(); index++) { if (nameValuePairs.get(index).getName() .equalsIgnoreCase("image[]")) { // If the key equals to "image[]", we use FileBody to transfer // the data Log.d("key", "image"); Log.d("image path", nameValuePairs.get(index).getName()); entity.addPart(nameValuePairs.get(index).getName(), new FileBody(new File(nameValuePairs.get(index) .getValue()))); } else { // Normal string data Log.d("tag", nameValuePairs.get(index).getName()); // Log.d("tag", nameValuePairs.get(index).getValue()); entity.addPart( nameValuePairs.get(index).getName(), new StringBody(nameValuePairs.get(index).getValue())); } } httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); HttpEntity enttiy = response.getEntity(); Log.d("server response to post data", EntityUtils.toString(enttiy)); } catch (IOException e) { e.printStackTrace(); } } 

Código Php (versión de trabajo):

 <?php $target_path = "user_uploaded_photos/"; for($i=0;$i<count($_FILES["image"]["name"]);$i++){ $fileData = pathinfo(basename($_FILES["image"]["name"][$i])); $username = $_POST['username']; print_r($fileData); $date = date('Y_m_d_H_i_s'); $newfilename = $username.$i.$date.".".$fileData['extension']; if (move_uploaded_file($_FILES["image"]["tmp_name"][$i], $target_path."/".$newfilename)) { echo "The image {$_FILES['image']['name'][$i]} was successfully uploaded and added to the gallery<br />"; } else { echo "There was an error uploading the file {$_FILES['image']['name'][$i]}, please try again!<br />"; } } $location = $_POST['location']; //other fields and database operations ommitted 

Mi problema es con el sitio web cakephp que estamos usando. Para el php de la torta uso pares del valor del nombre como sigue:

 nameValuePair .add(new BasicNameValuePair("UserDatum[user_id]", "2")); 

Enviar valores de cadena como este funciona para mí. Pero cuando declaro imágenes [] las imágenes de la matriz se suben pero no se puede acceder desde $ _FILES. He declarado las imágenes [] array de la siguiente manera:

 for (String s : imagePath) { nameValuePair.add(new BasicNameValuePair("UserDatum[images][]", s)); Log.d("image-path", s); } 

Aquí imagePath es arrayList de cadena que contiene la ruta de las imágenes. Está declarando "UserDatum [images] []" en app la forma correcta de hacerlo? Funciona con el php publicado, pero en PHP php sólo se colocan valores de cadena y no imágenes. He intentado otras bibliotecas como ion . Pero solo puedo subir una foto sin usar la estructura de la matriz. Favor de comentar o señalarme la dirección correcta para publicar varias imágenes y cadenas en una sola publicación.

Cada vez que publico datos de imágenes de una aplicación, utilizo la imagen codificada en Base64 (vea: Android publica la cadena Base64 en PHP )

Eso podría darle una mejor ruta.

  • Java / Android HttpURLConnection setChunkedStreamingMode no funciona con todos los servidores PHP
  • ¿Cómo puedo mostrar pdf en html (respuesta / solución de navegación cruzada)
  • Android MediaPlayer Streaming desde un redireccionamiento PHP no funciona-out!
  • Clics no funciona en WebView
  • Cómo crear API de sitio web
  • ¿Cómo puedo comprobar la compra en la aplicación de google en php?
  • Sesión de manejo en android mientras se registra en el lado del servidor en php
  • PhoneGap-Android: Notificación de empuje de Urban Airship desde mi servidor
  • ¿Cómo se comunica una aplicación de chat con su servidor?
  • Android: mensajes de alta prioridad con la mensajería en la nube de google (con corona sdk)
  • Cómo romper el contenido de las notificaciones en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.