Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Downloadscript beschädigt Datei

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    PHP-Code:
    <?php
    if (isset($_GET['los'])) {
        
    ob_start();
        
    error_reporting(E_ALL);    
        
    $download $_GET['los'];
        
    $filelist = array("download" => 'phpde.zip');
         
    // wo das Scropt Liegt, befindet sich auch die pphpde.zip
        
    if (!isset($filelist[$download])) die('Datei $download nicht vorhanden.');
        
    $basedir "";
        
    $filename =  $filelist[$download];
        
    header('Content-Type: application/zip');
        
    $gross filesize($filename);
        
    header('Content-Length: "'.$gross.'"');
        
    $save_as_name basename($filelist[$download]);
        
    header('Content-Disposition: attachment; filename = '.$save_as_name.'');
        if(
    is_readable($filename))
        { 
            echo 
    file_get_contents($filename);
        } else {
            echo 
    "";
        }
        
    ob_flush();
        die();
      }
    ?>
    <a href="?go=mich&amp;los=download">Downloadstart</a>
    probiers doch mal so aus, nur so aus neugierde
    I like cooking my family and my pets.
    Use commas. Don't be a psycho.
    [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

    Kommentar


    • #17
      öh ... die Datei wird gedownloadet ... ohne readfile() ... aber die gedownloadete datei ist immer noch nicht zu öffnen ... habs wirklich etliche male getestet (schei..) wo liegt dieser fehler?

      aber vielleicht sollte ich das vorgefertigte downloadscript benutzen ... nein, noch gebe ich mich nicht geschlagen

      Kommentar


      • #18
        ich habs. das downloadscript ist widerrum bestandteil einer pufferung.
        das html-fragment "<div>wichtig</div>" ist dann in der gedownloadeten zip-datei enthalten und führt zu dem nicht öffnen.
        warum das so ist und wie ich das umgehen kann, weiss ich noch nicht ...


        Code:
              ob_start();
              ?><div>wichtig</div><?php
              include('download.php');
              $output = ob_get_contents();
              ob_end_clean();
        
              echo $output;
        oder

        Code:
              ob_start();
              ?><div>wichtig</div><?php
              ob_start();
              readfile();
              ob_flush();
              $output = ob_get_contents();
              ob_end_clean();
        
              echo $output;

        mein code gefrickel

        Kommentar


        • #19
          Öhm??? Was machst du denn da eigtl? Natürlich darfst du nur den Output des files losschicken.
          Schau dir doch z.b. gleich mal im manual das Beispiel zu [MAN]readfile[/MAN] an.
          I like cooking my family and my pets.
          Use commas. Don't be a psycho.
          [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

          Kommentar


          • #20
            Das hat ja diese AUssage schon vermuten lassen.
            es befinden sich in der gedownloadeten datei html-fragmente ... ?? wieso das?
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #21
              so gehts. ist bestimmt umständlich und irgendwo falsch und bekomme jetzt erstmal ausmecker von nikosch

              ich meine ich bin ja darauf bedacht, korrekten und gut sortierten code zu produzieren, aber irgendwie fehlen halt immer bestimmte infos, die man sich erst dann holt (oder evtl. bekommt (auch als rätsel )) wenn man nicht weiterkommt oder fehler auftauchen. das php manual zuerst komplett zu verinnerlichen und dann erst seine ersten zeilen zu schreiben ist ja auch irgendwie, ich weiss nich ...

              Code:
                    ob_start();
                    ?><div>wichtig</div><?php
                    $output_a = ob_get_contents();
                    ob_end_clean();
              
                    ob_start();
                    include('download.php');
                    $output_b = ob_get_contents();
                    ob_end_clean();
              
                    echo $output = $output_a . $output_b;

              Kommentar


              • #22
                Ja, bekommst Du.

                ?><div>wichtig</div><?php
                $output_a = ob_get_contents();
                Das Buffering kannst Du Dir hier locker sparen. Zuweisung genügt.
                echo $output = $output_a . $output_b;
                Wozu hier die Zuweisung?

                3. Ich dachte es geht hier immer noch um das zip-File. Was sollen <div>-Bereiche darin zu suchen haben?
                [COLOR="#F5F5FF"]--[/COLOR]
                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                [COLOR="#F5F5FF"]
                --[/COLOR]

                Kommentar


                • #23
                  Das Buffering kannst Du Dir hier locker sparen. Zuweisung genügt.
                  ja, stimmt.

                  3. Ich dachte es geht hier immer noch um das zip-File. Was sollen <div>-Bereiche darin zu suchen haben?
                  ja, es ging ausschließlich um das zip-file ... in dem zip-file waren html-fragmente (sichtbar in notepad), die ich zunächst nicht zuordnen konnte <div>wichtig</div> diente hier im forum nur als beispiel. durch die vorh. fragmente im zip-file konnte ich das file halt nicht öffnen.
                  als mir dann klar wurde, wo die fragmente herkommen, habe ich das ganze wie in #21 umgebaut und siehe da, die fragmente waren nicht mehr vorhanden und ich konnte das zip-file öffnen ... das ganze hatte nichts, wie ursprünglich angenommen, mit meinem downloadscript zu tun, sondern mit einer "übergeordneten" pufferung ... und wieso das alles so is, muss ich auch noch verstehen ...
                  kannst du mir ein gutes aufbauendes php-buch empfehlen? also php & mysql von kevin yank, was sich eigentlich nur mit grundlagen beschäftigt, habe ich jetzt fast durch ... vielleicht eins, was sich mit struktuierter codierung befasst ... ? Dank!

                  Kommentar


                  • #24
                    Ich habe das gleiche Problem. Und zwar wenn ich Bilddateien herunterlade oder .exe Dateien lassen diese sich nicht öffnen.

                    .pdf Dateien funktionieren komischerweise.

                    Das ist mein Download Script:
                    PHP-Code:
                    <?php
                    include_once("../upload/online.php");
                    $hash $_GET['hash'];

                            
                    $sql "SELECT link FROM links WHERE hash = '".$hash."';";
                            
                    $query mysql_query($sql);
                            
                            
                    $result mysql_fetch_assoc($query);
                            
                    $url $result['link'];

                            
                            
                    $ext "SELECT filetype FROM links WHERE hash = '".$hash."';";
                            
                    $query mysql_query($ext);
                            
                            
                    $result mysql_fetch_assoc($query);
                            
                    $filetype $result['filetype'];
                            
                            
                    $dir "../upload/"
                        if ((isset(
                    $url))&&(file_exists($dir.$url))) { 
                           
                    header("Content-type: octet/stream"); 
                           
                    header("Content-length: ".filesize($dir.$url)); 
                           
                    header('Content-Disposition: attachment; filename="'.$filetype.'"'); 
                           
                    readfile("$dir$url"); 
                        } else { 
                           echo 
                    "No file selected"
                        } 
                    ?>
                    Kann da jemand was erkennen?

                    Kommentar


                    • #25
                      ja .. dein COntent-Type header passt nicht ...

                      PHP-Code:
                      header("Content-Type: application/octet-stream"); 
                      nimm mal den hier - und vor allem Poste nicht in 2 Foren das gleiche

                      http://www.php-resource.de/forum/php...lddateien.html

                      Crossposting Richtlinien beachten
                      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                      Kommentar


                      • #26
                        Bitte beachten: Anmerkung zu Multipostings

                        [MOD: Thread geschlossen]
                        [URL]http://hallophp.de[/URL]

                        Kommentar

                        Lädt...
                        X