entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Subir imagenes a base de datos, Dudas

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?

2votos

carlossevi comentado

Una cuestión: ¿sabes si move_uploaded_file() está devolviendo verdadero o falso?

Prueba a cambiar la configuración del servidor para admitir subidas de archivos de más de los 3MB que ocupan las fotos para asegurarte de que el problema es ese y una vez lo tengas claro busca como dices algún método para reducir el tamaño.

Respecto a reducir el tamaño pero no la calidad, lógicamente algo de pérdida de calidad tiene que haber =)

1voto

cobasESP comentado

No recojo lo que me devuelve el move_upload, pero supongo que sera por el tamaño de los archivos, al ser un hosting compartido no tengo acceso al php.ini, pero con el comando init_set() lo he intentado y nada. Voy a seguir probando cosas.

2votos

bl4z3r comentado

@cobasESP que configuración te lanza poner <?php phpinfo(); ?> en el index?

1 Respuesta

1voto

cobasESP Puntos19650

Ya esta funcionando, no puedo subir archivos de mas de 3 Mb al servidor, y al no tener accesso al php.ini ni poder poner .htaccess, he decidido cambiar el tamaño de las fotos programáticamente en android antes de enviarlas y se ven bien.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta