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

2votos

Insertar imagen con android por FTP

Hola que tal necesito insertar una imagen mediante ftp a un servidor,
por ahora solo puedo insertar un archivo.txt pero no puedo modificar el código para que inserte una imagen

este es el código que inserta el texto:

    public void createDummyFile() {
    try {
        FileOutputStream fos;
        String file_content = "Hi this is a sample file to upload for android FTP client example";

        fos = openFileOutput(TEMP_FILENAME, MODE_PRIVATE);
        fos.write(file_content.getBytes());
        fos.close();

    } catch (Exception e) {
        e.printStackTrace();
    }

}

les agradeceria si me hecharan una mano.. gracias

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola Nuevo Orden del Mundo,

por ese camino lo veo complicado, porque al trasmitir texto, tendrías que por ejemplo codificar la imagen en formato MIME o similar, y luego decodificarla al recibirla en el servidor.

Podrías usar en cambio una de las bibliotecas disponibles que implementan un cliente FTP como SImple FTP http://www.jibble.org/simpleftp/, que basta agregarla como paquete JAR al proyecto, y con ella hacer la conexión y subir cualquier tipo de archivo.

Acá hay un ejemplo de código: http://www.javabeat.net/file-upload-and-download-using-java/

Saludos!

0voto

Novus Ordo Seclorum comentado

muchas gracias leonardo la Liberia ya me ah guardado la imagen, pero ahora quisiera que esa imagen este dentro de otro directorio:

este es el codigo que me sirvio:

try
        {
            SimpleFTP ftp = new SimpleFTP();

            // Connect to an FTP server on port 37.
            ftp.connect("xxx.xxx.xxx.xxx, "xxx", "xxx");

            // Set binary mode(used to prevent file corruption etc)
            ftp.bin();

            ftp.cwd("/mywebdir");

            // Upload some files.
            File file = new File(Environment.getExternalStorageDirectory(), "daniel.jpg");
            ftp.stor(file);

            // disconnect from the FTP server.
            ftp.disconnect();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

espero me puedan echar la mano, estoy cerca pero no doy en el punto..

Saludos.

0voto

Leonardo-Tadei comentado

Hola,

Si no veo mal, el comando cwd (Change Working Directory) te debe etar fallando por la / puesta delante o porque no existe en el directorio actual.

El comando no crea el directorio, así que debe de existir y tener permisos suficientes para que el usuario FTP pueda escribir en él. Por otra parte, un cliente FTP inicializa tomando como CWD el HOME del usuario, y el error más común es querer cambiar a un directorio asumiendo que se está en la raíz pública del servidor web, en vez de en raíz del servidor web, que generalmente no coinciden.

Tendrías que enviar la estructura de directorios tal y como se ve al loguearte por FTP para confirmar esto... también ayudaría al diagnóstico ver si ftp.cwd("/mywebdir"); devuelve TRUE (se cambió al directorio) o FALSE (no se pudo cambiar)

Saludos!

0voto

Novus Ordo Seclorum comentado

Ya pude crear el directorio, pero necesite de otra clase... dejo el codigo(no se si sea correcto, pero hace lo que necesito).. Saludos y gracias leonardo.. tu ayuda me oriento mas.

FTPClient client = new FTPClient();

        try {
            client.connect("xxx.xxx.xxx.xxx");
            client.login("xxx", "xxx");
            client.makeDirectory("/nuevoDirectorio");
            client.logout();
        } catch (IOException e) {
            e.printStackTrace();
        }

0voto

Leonardo-Tadei comentado

Me alegra que lo hayas solucionado!

Salvo implementaciones que tengan algunas particularidades, por lo general se crea una estructura de directorios y luego se la usa: crear direcorios en un servidor desde una aplicación puede ser suceptible a fallos de seguridad.

Saludos!

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