Navigation

    Kopano
    • Register
    • Login
    • Search
    • Categories
    • Get Official Kopano Support
    • Recent
    Statement regarding the closure of the Kopano community forum and the end of the community edition

    Attachment does not download

    Kopano WebApp
    3
    5
    394
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • TuxTiger
      TuxTiger last edited by

      Upgraded to the last webapp (kopano-webapp_4.0.2676+1570.1), but still some attachments don’t download. Attachment is about 100Kb in size. (PDF)

      I had a customer who had a mail with 4 attachments, only the last one could be downloaded. Tried to download them all in a ZIP. The ZIP was made but only 1 out of 4 attachments where in the ZIP.

      Anybody with a tip how to debug this? Browser console log does not show any script errors…

      fbartels 1 Reply Last reply Reply Quote 0
      • fbartels
        fbartels Kopano @TuxTiger last edited by

        Hi @TuxTiger,

        i’d recommend to check for error messages. You could check the console of your browser, the webserver logging or logging of kopano-server. It may be required to change log verbosity to get additional insights.

        Regards Felix

        Resources:
        https://kopano.com/blog/how-to-get-kopano/
        https://documentation.kopano.io/
        https://kb.kopano.io/

        Support overview:
        https://kopano.com/support/

        1 Reply Last reply Reply Quote 0
        • TuxTiger
          TuxTiger last edited by TuxTiger

          The apache logs show no errors, just 200 in the access log.

          The response headers are indicating that a PDF is going to be delivered:

          ache-Control: must-revalidate, post-check=0, pre-check=0
          Connection: Keep-Alive
          Content-Length: 98396
          Content-Transfer-Encoding: binary
          Content-Type: application/pdf
          Date: Sat, 21 Mar 2020 22:50:20 GMT
          Expires: 0
          Keep-Alive: timeout=5, max=100
          Pragma: public
          Server: Apache
          Set-Cookie: lang=en_US.UTF-8; path=/; secure
          Strict-Transport-Security: max-age=31536000; includeSubDomainsi; preload
          X-Frame-Options: SAMEORIGIN
          X-Zarafa: 4.0.2676+1570.1
          

          but the response (according to Chrome network debug) is:

          <!doctype html><html><body style='height: 100%; width: 100%; overflow: hidden; margin:0px; background-color: rgb(82, 86, 89);'><embed style='position:absolute; left: 0; top: 0;'width='100%' height='100%' src='about:blank' type='application/pdf' internalid='2787C575D8E188ED45E23AC9BA5C9D40'></embed></body></html>
          

          Kopano server-log is clean (loglevel 5)

          1 Reply Last reply Reply Quote 0
          • TuxTiger
            TuxTiger last edited by TuxTiger

            The problem lies in the fact that the attachment filename has \r\n in de filename. The mail was received from our water company but I had another customer who received the pdf from his broker. So it is not some freak incident, apparently this can happen…

            attachment.png

            You can ‘see’ the \r\n present in the webinterface

            These characters break the header function therefore the Content-Disposition header is missing.

            My fix, but maybe you want it in function browserDependingHTTPHeaderEncode:

            diff --git a/server/includes/download_attachment.php b/server/includes/download_attachment.php
            index 332abbe3..135df45d 100644
            --- a/server/includes/download_attachment.php
            +++ b/server/includes/download_attachment.php
            @@ -344,7 +344,7 @@ class DownloadAttachment extends DownloadBase
                                    header('Pragma: public');
                                    header('Expires: 0'); // set expiration time
                                    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            -                       header('Content-Disposition: ' . $this->contentDispositionType . '; filename="' . addslashes(browserDependingHTTPHeaderEncode($filename)) . '"');
            +                       header('Content-Disposition: ' . $this->contentDispositionType . '; filename="' . addslashes(preg_replace("/\r|\n/", "", browserDependingHTTPHeaderEncode($filename))) . '"');
                                    header('Content-Type: ' . $contentType);
                                    header('Content-Transfer-Encoding: binary');
            
            1 Reply Last reply Reply Quote 0
            • marty
              marty Kopano (Inactive) last edited by

              @TuxTiger

              Based on your suggestion we made a ticket and a fix: https://jira.kopano.io/browse/KW-3408
              Thanks!

              https://documentation.kopano.io/deskapp_admin_manual
              http://documentation.kopano.io/webapp_smime_manual
              https://documentation.kopano.io/webapp_admin_manual

              1 Reply Last reply Reply Quote 0
              • First post
                Last post