php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.08.2009, 10:49  
Erfahrener Benutzer
 
Registriert seit: 03.03.2009
Beiträge: 264
PHP-Kenntnisse:
Anfänger
choice befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Downloadscript beschädigt Datei

Hallo zusammen,

u.g. download funktioniert einwandfrei, nur: wenn ich die gedownloadete Datei xy.zip entpacken will, tritt ein Fehler auf: "Fehler in gepackter Datei" und keine weitere Angabe.
Die Datei liegt heile aufm Server, wenn ich sie per FTP auf meinen Rechner ziehe, kann ich sie normal entpacken. Also muss der Fehler in meinem Download-Script liegen. Nur wo? Danke für die Hilfe.

Code:
<?php

  if (isset($_GET['los'])) {
    $download = $_GET["los"];
    $filelist = array("download" => "xy.zip");
    if (!isset($filelist[$download])) die('Datei $download nicht vorhanden.');
    $basedir = "/html";
    $filename = sprintf("%s/%s", $basedir, $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.'');
    readfile($filename);
    exit();
  }

?>

<a href="?go=mich&amp;los=download">Downloadstart</a>
choice ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.08.2009, 11:07  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hat die Datei die richtige Dateigröße?

Bau doch mal ein file_exists ein.
Destruction ist offline  
Alt 01.08.2009, 11:24  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Code:
header('Content-Length: '.$gross.'');
Was macht denn .'' am Ende? (löst nicht das Problem)

Ist der Pfad, sprich $filename, korrekt?

Fehlen hier:
Code:
; filename = '.$save_as_name.''
vielleicht Anführungszeichen?
=>
Code:
; filename = "'.$save_as_name.'"'
Gruß
Asipak ist offline  
Alt 01.08.2009, 11:33  
Erfahrener Benutzer
 
Registriert seit: 03.03.2009
Beiträge: 264
PHP-Kenntnisse:
Anfänger
choice befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Hat die Datei die richtige Dateigröße?

Bau doch mal ein file_exists ein.
$gross = filesize($filename); ermittelt automatisch die größe. wie gesagt, das downloaden ansich funktioniert absolut tadellos!!

kann es sein, das irgendwie noch irgendwas an die datei drangehängt wird?? leerzeichen?


Zitat:
Was macht denn .'' am Ende? (löst nicht das Problem)
ja, ich hatte das schnell per hand fürs forum korrigiert, aber wie du sagtest lößt das auch nicht das problem ...

bzw. habs nochmal getestet. funktioniert tadellos, also so

Code:
; filename = '.$save_as_name.''

Geändert von choice (01.08.2009 um 11:40 Uhr).
choice ist offline  
Alt 01.08.2009, 11:44  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
kann es sein, das irgendwie noch irgendwas an die datei drangehängt wird?? leerzeichen?
Das kannst du ja wohl selbst am Besten nachschauen Sorry, aber was soll die Frage? Schick es mal durch trim()

Zitat:
bzw. habs nochmal getestet. funktioniert tadellos, also so
Funktioniert es jetzt also? Mit Anführungszeichen kann es an sich aber auch nicht schaden!

Gruß
Asipak ist offline  
Alt 01.08.2009, 11:49  
Neuer Benutzer
 
Registriert seit: 01.08.2009
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
smindel befindet sich auf einem aufstrebenden Ast
Standard

moin choice,

ich glaub, destruction meinte die filegröße von dem file, das du downloadest. es sollte ja identisch sein mit dem file, das auf dem server liegt. wenn das so wäre würds funktionieren, tut es aber nicht. wahrscheinlich sind die beiden files also nicht identisch (wahrscheinlich die file sizes auch nicht). öffne das gedownloadete file doch mal in nem text editor, vergleich die beiden files. vielleicht gibts zusätzliche whitespaces oder php-fehlermeldungen am anfang oder ende deines files...

viel glück

smindel
smindel ist offline  
Alt 01.08.2009, 11:52  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von smindel Beitrag anzeigen
moin choice,

ich glaub, destruction meinte die filegröße von dem file, das du downloadest.
Ja, das meinte ich eigentlich.
MfG Destruction
__________________
"Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]
Destruction ist offline  
Alt 01.08.2009, 12:15  
Erfahrener Benutzer
 
Registriert seit: 03.03.2009
Beiträge: 264
PHP-Kenntnisse:
Anfänger
choice befindet sich auf einem aufstrebenden Ast
Standard

ha!

moin smindel!

Zitat:
wahrscheinlich sind die beiden files also nicht identisch (wahrscheinlich die file sizes auch nicht).
also die datei hat immer 157 bytes, vor und nach dem downloaden, aber:

Zitat:
öffne das gedownloadete file doch mal in nem text editor
es befinden sich in der gedownloadeten datei html-fragmente ... ?? wieso das?
choice ist offline  
Alt 01.08.2009, 12:19  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Pass auf, nimm einfaches folgendes Script Dateidownload realisieren

Ich seh es wieder mal kommen. Am Ende fehlt irgendwo ein . oder die Dateiendung wurde 2 mal angehangen

Gruß
Asipak ist offline  
Alt 01.08.2009, 12:23  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Jo ich denke auch dass das hier umständlicher ist deinen Fehler zu suchen, als einfach ein neues zu nehmen
MfG
__________________
"Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]
Destruction ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] css datei in css datei einbinden xstefxanx HTML, Usability und Barrierefreiheit 10 21.03.2009 20:11
[Erledigt] Datei Upload Prüfung auf wav / mp3 mastertnt PHP Tipps 2009 4 15.02.2009 20:05
Wert in externer Datei speichern Abakay PHP Tipps 2008 6 04.12.2008 18:56
Datei per Buttonklick runterladen... go1denboy PHP Tipps 2008 7 14.06.2008 20:25
Großer Baum -> Große Datei -> Hohe Ladezeit :( PsychoEagle PHP Tipps 2008 7 22.09.2007 12:44
.gz Datei entpacken und mit dem Inhalt weiterarbeiten R4v3r PHP Tipps 2007 8 02.02.2007 14:49
String als Datei speichern Zangelo PHP Tipps 2006 23 25.08.2006 14:13
Datei auf FTP-Server ändern ohne lokal abzuspeichern faux PHP-Fortgeschrittene 11 02.09.2005 11:54
Datei mehrmals öffnen und schließen in einem Skript PHP Tipps 2005-2 14 14.07.2005 18:12
Ordner Struktur auslesen bestimmte datei finden .... silverghost PHP Tipps 2005 3 24.05.2005 13:55
Includete Datei nicht gleich ausgeben Madden PHP-Fortgeschrittene 1 12.05.2005 00:19
xfdf Datei mit PHP an eMail senden Problem: Leere Datei PHP Tipps 2004-2 1 07.12.2004 12:25
[Erledigt] datei editieren PHP Tipps 2004 1 10.09.2004 20:33
(ich schonwieder) Link seite automatisch imported_DJ Nuno PHP Tipps 2004 14 19.08.2004 17:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fehler in gepackter datei, php download script große dateien, beschädigtes script, download beschädigt, if (!isset($filelist[$download])), downloadscript header \große dateien\, php zip beschädigt, download script php, php readfile \beschädigte inhalte\, php dateiliste array blätter, php download beschädigte inhalte, php dateidownload datei beschädigt, php download datei beschädigt, php datei nach download beschädigt, google script beschädigt, php download file beschädigt, php download an dateiname wird .html angehangen, php downloadscript fehler in datei, download datei beschädigt php, php downloadscript große dateien

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum