1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Datei-Download

  • PWL
  • 5. September 2009 um 01:58
  • Unerledigt
  • PWL
    5
    PWL
    Mitglied
    Punkte
    240
    Beiträge
    31
    • 5. September 2009 um 01:58
    • #1

    Hallo,

    ich hab mir hier ein Skript geschrieben, welches einen Datei-Download realisiert. Allerdings gibt es ein Problem: er lädt die datei herunter, die datei lässt sich aber nicht öffnen, ich vermute es hat was mit dem output buffering zu tun, da zuvor eine ausgabe erfolgt?!?!

    hier mein code:

    PHP
    <?php
    $save = "files/test.jpg";
    ob_start();
    echo "hallo";
    if (is_file ( $save )) {
      header("Content-Type: application/octet-stream");
      header("Content-Length:".filesize($save));
      header("Content-Disposition: attachment; filename=$save");
      header("Content-Description: Download");
      readfile($save);
    } else {
      die ( "Fehler: $save ist keine Datei." );
    }
    ?>
    Alles anzeigen

    vl. weiß einer von euch woran das liegen könnte...

    Einmal editiert, zuletzt von PWL (5. September 2009 um 02:01)

  • PWL
    5
    PWL
    Mitglied
    Punkte
    240
    Beiträge
    31
    • 5. September 2009 um 02:08
    • #2

    ok hab des problem gefunden...
    ob_clean();
    flush();
    hat vor dem readfile... gefehlt

  • josef19
    9
    josef19
    Mitglied
    Reaktionen
    9
    Punkte
    749
    Beiträge
    135
    • 5. September 2009 um 09:16
    • #3

    vor header() darf nichts ausgegeben werden!!! (echo)

    Deine jetzige Lösung ist ein Workaround und funktioniert bei abgeschaltenen Cache nicht !!!!

    PHP
    <?php
    $save = "test.jpg";
    if (is_file ( $save )) {
      header("Content-Type: application/octet-stream");
      header("Content-Length:".filesize($save));
      header("Content-Disposition: attachment; filename=$save");
      header("Content-Description: Download");
      readfile($save);
    } else {
      die ( "Fehler: $save ist keine Datei." );
    }
    ?>
    Alles anzeigen

    Warum einfach, wenns kompliziert geht ! USB-CD-ROM mit USB-Stick emulieren

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung