Korrupte Downloads

Support about Download MOD for phpBB 2
Antworten
Splash06
Beiträge: 3
Registriert: Mi 14.Nov, 2007 22:30

Korrupte Downloads

Beitrag von Splash06 »

Hi,

ich hatte Probleme mit dem Download, die Daten wurden zwar runtergeladen allerdings war der Download korrupt.
Das ganze lag bei mir am Ausgabepuffer der bereits vor dem Download Leerstellen enthielt und die dann nacher an den Anfang der Datei gesetzt wurden. Dadurch ließen sich z.B. excel-Dokument nicht mehr lesen. =>siehe readfile()

Lösung des Problem ist einfach(wenn man es mal gefunden hat ^^):

Code: Alles auswählen

OPEN: downloads.php
FIND:
		/*
		* not it is time and we are ready to rumble: send the file to the user client to download it there!
		*/
AFTER ADD:
		// Ausgabepuffer leeren um korrupte Downloads zu vermeiden
		ob_end_clean(); 
		ob_start();
PS: Ein paar Daten zu meiner Plattform:
PhpBB: (noch) phpBB 2.0.21
PHP: 5.2.0-19
Suse Linux
########################
Wenn ich bei ExtraInformation etwas reinschreibe erscheint der CrackerTracker beim Abschicken des Posts ? Scheint in der posting.php noch eine Ausnahme zu fehlen.
Zuletzt geändert von Splash06 am So 25.Nov, 2007 23:10, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Oh, danke für die Lösung!
Ich werde den MOD damit dann schnellstens aktualisieren.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Dungeonwatcher
Beiträge: 1055
Registriert: Sa 19.Feb, 2005 01:16
Wohnort: Berlin
Kontaktdaten:

Beitrag von Dungeonwatcher »

Hi! :cool:

Das funktioniert bei meinem System mal wieder nicht. Wenn ich dies so eintrage:

Code: Alles auswählen

		/*
		* not it is time and we are ready to rumble: send the file to the user client to download it there!
		*/
		
		# // Ausgabepuffer leeren um korrupte Downloads zu vermeiden
		ob_end_clean();
		ob_start();
		
		if ($dl_file['extern'])
		{
			header("HTTP/1.1 301 Moved Permanently");
			header("Location: ".$dl_file['file_name']);
		}
dann wird entweder die Datei downloads.php zum Speichern angeboten (Methode neu) und hat anschließend 0 Byte, oder aber es gibt die Meldung:
...konnte nicht gespeichert werden, weil die Quelldatei nicht gelesen werden konnte.
:(
Zuletzt geändert von Dungeonwatcher am Mo 26.Nov, 2007 11:46, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Langsam, ich werde das erst noch austesten!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Keine Chance, mit dieser Änderung funktioniert es scheinbar auch nur hier, nirgends anders!
Mit diesen Befehlen würde man den Ausgabepuffer leeren, so daß bereits gesendete Inhalt nicht mehr beim Browser ankommen.
Die Folge wären sehr viele Abbrüche bei Downloads!

@Splash06
Hast Du denn schon mal andere Download Methoden im MOD selber eingestellt und getestet?
Dazu würde ich auch Office-Dateien nie unkomprimiert zum Download anbieten, da diese immer Gefahr laufen, zerstört zu werden.
Besser ist es hier, diese zumindest als Zip-Archiv zu packen und dann hochzuladen.

Ergo:
Ich werde den MOD nicht anpassen, da mit diesen Befehlen mehr Schaden als Nutzen angerichtet werden kann.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Splash06
Beiträge: 3
Registriert: Mi 14.Nov, 2007 22:30

Beitrag von Splash06 »

Ich hatte alle Methoden getestet und dann festgestellt egal ob .zip .txt oder .doc es wird immer [] so ein rechteck an den Anfang der Datei gehängt. Alles Lösungsvorschläge in diesem Forum hatten nicht geholfen. Kann sein das es bei mir an einem der Mods liegt die ich eingebaut habe oder einfach nur an PHP5.

Es kann sein das die Lösung mit dem direkte Download dann nicht mehr funktioniert ... müsste man testen, was aber auch kein Problem wären weil man das ganze dann einfach später einfügt.Wollte es nur posten falls jemand mal vor dem gleichen Problem stehen sollte und keine Lösung findet.


MfG Splash
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wie "ein []" einfügt?

Wo denn? In die Datei?
Wie hast Du die denn dann hochgeladen?
Mit dem Download MOD selber?

Wäre so oder so sehr komisch, denn die Datei wird durch den MOD in keinster Weise verändert...

Wie gesagt: Den Ausgabepuffer an der von Dir angegebene Stelle zu leeren und neu zu starten ist alles andere als hilfreich, da ich bei meinen Tests damit jede Datei mit 0 Bytes heruntergeladen bekam...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Splash06
Beiträge: 3
Registriert: Mi 14.Nov, 2007 22:30

Beitrag von Splash06 »

Die Dateien wurden korrekt hochgeladen und per FTP konnte ich sie auch wieder korrekt runterladen.
Der Ausgabepuffer enthielt allerdings bereits vor dem Download ein "\n" oder ein Leerspace das wird im Editor als hochkantes Rechteck angezeigt.

Per readfile() wird die Datei in den Ausgabepuffer geschrieben, hinter das \n. Wenn der Ausgabepuffer dann an den Clienten gesendet wird erhält dieser ein korruptes File (\n + orig.Datei)

Ich weiß nicht warum das bei mir so ist, aber das leeren des Ausgabepuffers vor dem Download und die Downloadeinstellung neu oder alt funktionieren seit dem.

Hoffe das konnte ein bisschen Klarheit schaffen ;)

MfG Splash

PS: ich hab mal meine Downloads.php angefügt...
Dateianhänge
downloads.php.zip
Meine downloads.php
(12.92 KiB) 229-mal heruntergeladen
Zuletzt geändert von Splash06 am Mo 26.Nov, 2007 22:06, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Da stellt sich mir die Frage, warum überhaupt ein \n bei Dir im Ausgabepuffer vorhanden ist?
Das darf nämlich hier normalerweise nicht der Fall sein!
Der MOD schreibt nämlich bis zum header(); nichts in den Ausgabepuffer, der ist also, sofern nichts anderweitig am Forum geschraubt wurde, an der Stelle leer.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten