Datei ist beschädigt nach Download

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datei ist beschädigt nach Download

    hallo,

    hab folgendes Problem:
    ich biete auf einer seite dateien zum download an, der downloaddialog öffnet sich auch und die datei kann heruntergeladen werden. wenn die datei jedoch geöffnet wird kommt zb bei einem pdf die meldung:

    "Adobe konnte die Datei ... nicht öffnen, da der Dateityp nicht unterstützt wird oder die Datei beschädigt ist (z.B wenn sie als E-Mail Anhang geschickt und nicht korrekt dekodiert wurde)."

    Bei einer Bilddatei kommt: "Keine Vorschau verfügbar"
    usw.....

    Meiner Meinung nach müssten die verwendeten Header passen:

    PHP-Code:
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type:" .$this->df_contenttype);
    header("Content-Disposition: ".$this->df_contentdisposition."; filename=".basename($this->df_filename));
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".$this->df_size); 
    Den Upload mach ich auch über ein PHP-Skript - funktioniert auch soweit!

    Wenn ich die Dateien händisch herunterlade (also über das Filesystem), kann ich sie normal öffnen, also sind sie unbeschädigt!
    Es muss irgendwas während des Downloads passieren...?!?!
    Der Webserver läuft auf Suse Linux, und die Dateien liegen außerhalb des htdocs-Verzeichnisses.

    Jemand ne Idee was da passiert??

    Danke für die Hilfe!!

  • #2
    Re: Datei ist beschädigt nach Download

    Kein wirklich neues Problem ...

    Suchfunktion benutzen.
    Userkommentare bzgl. header im Manual lesen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Wenn man
      PHP-Code:
      header("Content-Transfer-Encoding: binary"); 
      also binäre Daten via HTTP übertragen könnte: Wieso machen sich dann die Mailprogs die Mühe den Content mittels base64 zu codieren ?
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        was genau an der datei ist kaputt?
        nimm zum testen z.b. eine kleine gif datei, vergleiche mit diff.
        OffTopic:
        tobi: geschichtsbedingt, wie so oft, backwards compatibility etc.

        http://en.wikipedia.org/wiki/Base64
        The first known use of Base 64 encoding for electronic data transfer was the Privacy-enhanced Electronic Mail (PEM) protocol, proposed by RFC 989 in 1987. PEM defines a "printable encoding" scheme that uses Base 64 encoding to transform an arbitrary sequence of octets to a format that can be expressed in short lines of 7-bit characters, as required by transfer protocols such as SMTP.
        Zuletzt geändert von penizillin; 27.03.2007, 19:14.

        Kommentar


        • #5
          wenn ich mit diff die dateien vergleiche ist eigentlich alles unterschiedlich... da kommen so ca. 9000 differenzen!?

          hab schon google kreuz und quer durchsucht (eh klar!) und auch foren - für das, dass es ein kein wirklich neues problem ist find ich relativ wenig darüber - bzw. finde ich halt nichts?!?!

          bitte um kurze hinweise und ratschläge!


          vielen dank...

          Kommentar


          • #6
            Wenn ich hier im Forum nach "pdf download header" suche, finde ich bspw. einen Thread der besgat, dass der Header "Cache-Control: no-cache" dem IE in solchen Fällen nicht sonderlich schmecken soll ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              hab schon alles mögliche probiert mit den headern - aber irgendwie wills nicht funktionieren.

              ich hab jetzt gerade bei einer pdf-datei etwas bemerkt, und zwar hat die originaldatei 275kb - nach dem download nur mehr 12 kb. klar, dass man die dann nicht öffnen kann.

              was passt ihm da nicht??

              Kommentar


              • #8
                wie wird denn das pdf verarbeitet? es muss doch irgendwie eingelesen werden, oder?

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  ja, und zwar mit:
                  PHP-Code:
                  $fp readfile($this->df_filename); 
                  hab ich zuerst noch nicht erwähnt!

                  Kommentar


                  • #10
                    mal versucht, das mit fopen und fread umzusetzen?

                    gruß
                    peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      funktioniert leider auch nicht - gleicher effekt!

                      beim download-dialog vom internet-explorer wird die richtige größe angezeigt -> 275 kb - heruntergeladen werden aber nur 12 kb.

                      wie kann man dieses problem lösen???

                      Kommentar


                      • #12
                        Guck dir mal die 12kb Quellcode an und wie sie aufhören.
                        Und stimmt die size-Angabe 100%ig? Was sagt eine Testausgabe von $this->df_size?

                        Kommentar


                        • #13
                          hab mir das pdf jetzt mitm editor angesehen....
                          aso ein depp - der lädt mir die datei mit dem html-code herunter! warum macht er das???

                          size-angebe stimmt sicher - hab ich mir ausgeben lassen!

                          Kommentar


                          • #14
                            zeig mal den html code - oft ist da eine lustige fehlermeldung versteckt.

                            Kommentar


                            • #15
                              ich verstehs einfach nicht - ich lese ja definitiv die pdf-datei ein. wenn ich eine andere nicht vorhandene datei angebe bekomm ich eine fehlermeldung - ist auch ok so!

                              wie kommt er auf den html-code...??

                              fehlermeldung entdecke ich keine darin!!

                              Kommentar

                              Lädt...
                              X