AnswerBun.com

obtener el nombre de un archivo pdf que esta en el servidor

Stack Overflow en español Asked by mjuan on December 24, 2020

Necesito descargar un pdf desde mi app android pero sin pisar el nombre, es decir, cuando ingreso la "url /.../.../valortiempo" para generar la petición al servidor, este me va a responder con un pdf con su nombre,que hace referencia a ese tiempo que le envío.

La cuestión es que en mi código me pide que ingrese un nombre para renombrar a mi archivo, y lo que necesito es el nombre original del pdf:

String url = "";
    try {
        byte[] todo = null;
        byte[] parte = new byte[1024];
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        URL newurl = new URL(url);
        HttpURLConnection con =
                          (HttpURLConnection)newurl.openConnection();
        con.connect();
        int cont =0;
        while ((cont = con.getInputStream().read(parte)) != -1) {
            bos.write(parte, 0, cont);
            bos.flush();
            publishProgress(cont);
        }
        todo = bos.toByteArray();

        File file;
        String fileName = Uri.parse(url).getLastPathSegment();
        file = File.createTempFile(fileName,null,getApplicationContext().getFilesDir());

        FileOutputStream fos = new FileOutputStream(file);
        BufferedOutputStream bost = new BufferedOutputStream(fos);
        bost.write(todo);
        listaDeArchivos.add(file);
        bost.close();

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

One Answer

En realidad estas obteniendo el nombre del archivo original de la url mediante:

 String fileName = Uri.parse(url).getLastPathSegment();

por ejemplo si tu url es :

String url = "http://www.example.com/some/path/to/a/file.pdf"

Mediante Uri.parse(url).getLastPathSegment() se obtiene

file.pdf

Pero el método para guardar usado para guardar el archivo es createTempFile()

file = File.createTempFile(fileName,null,getApplicationContext().getFilesDir());

el cual requiere de un prefijo, un sufijo y el path destino.

createTempFile(String prefix, String Sufijo , File Directorio)

  • Prefix - La cadena de prefijo que se utilizará para generar el nombre del archivo; Debe tener al menos tres caracteres.

  • Sufijo - La cadena de sufijo que se utilizará para generar el nombre del archivo; Puede ser nulo, en cuyo caso se utilizará el sufijo ".tmp"

  • Directorio - El directorio en el que se va a crear el archivo, o null si se va a usar el directorio de archivos temporales por defecto

En este caso no es posible cambiar el nombre del "archivo temporal" a crear, únicamente agregar un prefijo y un sufijo:


como ejemplo, tengo una aplicación que usa este método y puedes notar defino un prefijo ("android_tutorial") y un sufijo (".pdf"):

 file = File.createTempFile("android_tutorial", ".pdf", getApplicationContext().getFilesDir());

por lo tanto se agregan se agrega el prefijo y sufijo pero no hay manera de cambiar el nombre del archivo temporal que crea el sistema operativo:

introducir la descripción de la imagen aquí

Answered by Jorgesys on December 24, 2020

Add your own answers!

Related Questions

Mi formulario de contacto no funciona en otros hostings

1  Asked on November 17, 2021 by connie-r-m

         

Necesito insertar un video con javafx en mi proyecto y me da este error

1  Asked on November 17, 2021 by jose-luis-sanchez-garcia

       

MySQL – Stored Procedure Error

1  Asked on November 17, 2021 by elba-nanero

 

ERROR EN LA CONSULTA

1  Asked on November 17, 2021

     

Mi arreglo borra los valores tras ser llenado

1  Asked on November 17, 2021 by marcelo-avendao

       

Paginación de resultados con JSP y MySql

1  Asked on November 17, 2021 by harold-rueda-antolinez

       

Agregar String con multineas a una lista Java

2  Asked on November 17, 2021 by fabian-feriks

   

Exportar una consulta a Excel

0  Asked on November 15, 2021 by proteus8

     

Join en una relacion laravel

1  Asked on November 15, 2021 by anonimo21

 

Agregar un texto a un pom.xml desde Java

2  Asked on November 15, 2021 by daniel-morales

   

Paginar consulta con Linq

2  Asked on November 15, 2021 by jhon-castrillon

   

Uso correcto de localstorage

2  Asked on November 15, 2021 by lleims

     

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP