I have an old project and I am very lost.
I am downloading a file from an FTP but it is not downloaded in its entirety, it is generated before it is fully completed.
Every time I give to download it is of a different size and very inferior to its real size
FTPClient ftpClient = new FTPClient();
ftpClient.connect("xxxx");
ftpClient.login("xxx", "xxxx");
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.changeWorkingDirectory("/");
InputStream in = ftpClient.retrieveFileStream(consentimiento.getRutaFichero());
BufferedInputStream objLector = new BufferedInputStream(in);
FacesContext objContexto = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) objContexto.getExternalContext().getResponse();
String contentType = Utilidades.obtenerTipoDocumento("wav");
response.setContentType(contentType);
response.setContentLength(in.available());
response.setHeader("Content-disposition", "attachment; filename=\"" + consentimiento.getNombreFichero() + "\"");
BufferedOutputStream objGrabador = new BufferedOutputStream(response.getOutputStream());
// Traspasar el contenido del fichero al objeto response
for (int data; (data = objLector.read()) != -1;) {
objGrabador.write(data);
}
objGrabador.flush();
objGrabador.close();
objLector.close();
objContexto.responseComplete();