Pobranie content-Lenght z OutputStream

0

Witam, mam pewien problem nad którym głowię się którąś godzinę. Mianowicie chodzi mi o to, w jaki sposób pobrać ContentLenght z pobieranego z FTP pliku.

kod Stremingu. Chciałbym jakoś pobrać z niego wielkość pliku i przekazać do


protected Integer contentLenght;


response.getContentLenght(contentLenght)

który użyje w metodzie setHeaders.

 protected void doActualStreamingFromFtp() throws IOException {
        OutputStream outputStream = null;
        try {
            outputStream = response.getOutputStream();
            IOUtils.copyLarge(ftpInputStream, outputStream);
        } catch (ClientAbortException e) {
            logger.warn(getClass(), "client stopped download file, ordersEntity = %s", ordersEntity);
        } catch (IOException e) {
            logger.warn(getClass(), "client stopped download or file is corrupted, ordersEntity = %s", ordersEntity);
        } finally {
            StreamUtils.closeStreams(ftpInputStream, outputStream);
        }
    }
0
long contentLength = IOUtils.copyLarge(ftpInputStream, outputStream);
0

serio ? :D i mogę to przedstawić jako INT-a na potrzeby getContentLenght ?

0

A co jeśli potrzebuję contentLenth wcześniej ?

Który header świadczy o tym że plik jest do pobrania zamiast to otwarcia się w przeglądarce ? bo jeśli daje metodą setHeaders po metodzie doActualStreamingFromFtp to otwiera mi się binarnie w przeglądarce zamiast pobierać jako plik. Więc wypadałoby wcześniej do response dać sygnał że plik ma się pobierać a nie otwierać.

Czyto parametr

String contentType = "application/force-download";

?

  protected void setHeaders() {
        String secureFileName = getSecureFileName();
        response.setHeader(Configuration.CONTENT_DISPOSITION_HEADER, "attachment;filename=" + secureFileName);
        response.setHeader("Content-Transfer-Encoding", "binary");


        String contentType = "application/force-download";
        if ("epub".equalsIgnoreCase(FilenameUtils.getExtension(secureFileName))) {
            contentType = "application/epub";
        }
        response.setContentType(contentType);
        response.setContentLength((int) contentLenght);
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1