Muy buenas, ando desarrollando una app para sacar unas fotos a un coche, y una firma en canvas, y subirlas a un servidor para dejar constancia de la recogida del coche. Tengo un php que recoge un código y las imágenes y las guarda en una carpeta, y en la app de android capturo las 3 fotos y la firma y las subo mediante una librería de terceros.
Las 3 imagenes se guardan correctamente, puedo verlas mediante el explorador de archivos del movil, pero no se ven en la galería, es extraño, las fotos ocupan unos 3Mb, después guardo la firma recogida del canvas y esta si se ven en la galeria y ocupa 80Kb.
Al montar todo y subirlas tarda como 1 minuto en subir todo(saco una notificación con una barra de carga mientras), despues de ese minuto voy al servidor y solo me Ha guardado la firma, las otras fotos no, pero existen en el telefono y no se que puede pasar, os dejo el código.
Código del upload de android
public void uploadMultipart(final Context context) {
try {
String uploadId =
new MultipartUploadRequest(context, "http://midominio.com/transfers/app/parking.php")
.addFileToUpload(photo.getAbsolutePath(), "firma")
.addFileToUpload(traserapath, "trasera")
.addFileToUpload(delanterapath, "delantera")
.addFileToUpload(kmpath, "km")
.addParameter("localizador", "kcts5Zw05syu2q0")
.setNotificationConfig(new UploadNotificationConfig().setTitle("Subiendo imagenes").setCompletedMessage("Imagenes subidas con éxito"))
.setMaxRetries(2)
.startUpload();
} catch (Exception exc) {
Log.e("AndroidUploadService", exc.getMessage(), exc);
}
}
php donde guardo las imagenes
<?php
$loc = $_POST['localizador'];
mkdir('parking_img/'.$loc);
$ruta = "parking_img/".$loc."/" . basename( $_FILES['firma']['name']);
if(move_uploaded_file($_FILES['firma']['tmp_name'], $ruta)){
chmod ("parking_img/".$loc."/".basename( $_FILES['firma']['name']), 0644);
rename("parking_img/".$loc."/".basename( $_FILES['firma']['name']), "parking_img/".$loc."/firma.jpg");
}
$ruta = "parking_img/".$loc."/" . basename( $_FILES['trasera']['name']);
if(move_uploaded_file($_FILES['trasera']['tmp_name'], $ruta)){
chmod ("parking_img/".$loc."/".basename( $_FILES['trasera']['name']), 0644);
}
$ruta = "parking_img/".$loc."/" . basename( $_FILES['delantera']['name']);
if(move_uploaded_file($_FILES['delantera']['tmp_name'], $ruta)){
chmod ("parking_img/".$loc."/".basename( $_FILES['delantera']['name']), 0644);
}
$ruta = "parking_img/".$loc."/" . basename( $_FILES['km']['name']);
if(move_uploaded_file($_FILES['km']['tmp_name'], $ruta)){
chmod ("parking_img/".$loc."/".basename( $_FILES['km']['name']), 0644);
}
EDIT:
Las pruebas las he hecho con un BQ acuaris M5.5, y ocurre eso, he probado con una tablet de 10'' y 2Mpx de camara y las fotos del coche ocupa 333 Kb y ha funcionado todo correctamente. Hay alguna manera de reducir el tamaño de las fotos en android pero no la calidad?