-
22. 10. 2007, 20:57 #1
[php] File Up/Download, Speed limit, Resume
Da es in letzter Zeit immer wieder mal angefragt wurde, habe ich die Fragen von hier und hier aufgegriffen und in einen Code getippt. Herausgekommen ist ein kleines Downloadscript, welches Dateien ausliefert und dabei die Geschwindigkeit regulieren kann und das Wiederaufnehmen von abgebrochenen Downloads erlaubt.
Letztere Funktionalität habe ich bisher nur mit Opera erfolgreich getestet. Daher wollte ich fragen, ob das jemand mal mit einem Downloadmanager testen kann (vor allem, ob das Herunterladen mit mehreren parallelen Verbindungen klappt).
Hier der Link:
http://typosquat.x10hosting.com/uplo...b9b431f901274c
Der Download ist auf 2 KB/s beschränkt (die Datei ist nur 260KB groß), damit das Herunterladen nicht zu schnell vorbei ist
Wenn das alles klappt, dann stell ich hier mal den Code rein.
-
22. 10. 2007, 21:00 #2
Re: [php] File Up/Download, Speed limit, Resume
mit firefox ist der speed exakt bei 2,4 kb/s gewesen
hätte interesse am code
-
22. 10. 2007, 21:06 #3
Re: [php] File Up/Download, Speed limit, Resume
cool, erfolgreich mit 2,3 kb unter firefox getestet.

-
22. 10. 2007, 23:01 #4
Re: [php] File Up/Download, Speed limit, Resume
klappt einbahnfrei
Zitat von abflussrohr
würde mich sehr über den code freuen 

-
23. 10. 2007, 00:45 #5Mitglied
- Registriert seit
- Oct 2007
- Beiträge
- 93
Re: [php] File Up/Download, Speed limit, Resume
mit dem free download manager komme ich auf einen speed von durschnittlich 2,1 kb.
auch das wiederaufnehmen des downloads klappt einwandfrei. nur eins noch: es gibt bestimmt irgendeinen HTTP header der gesendet wird, um anzuzeigen, dass der download wiederaufgeommen werden kann. der free download manager zeigt nämlich nur an "Wiederaufnahme: Unbekannt". deswegen wird das im firefox wohl nicht funktionieren......
p.s. ich würde mich auch über den quellcode freuen

-
23. 10. 2007, 01:08 #6
Re: [php] File Up/Download, Speed limit, Resume
Blödes Script ^^ bremst meine schöne Highspeedleitung mit Firefox auf 2,0 KB/sek
veröffentliche diesen Code bitte nie :P
-
23. 10. 2007, 10:28 #7
Re: [php] File Up/Download, Speed limit, Resume
toll gemacht, danke abflussrohr, das mit $_SERVER['HTTP_RANGE'] kannte ich noch nicht, vor allem weil es in der PHP-Manual nicht auftaucht, gibt's noch mehr solcher Variablen? vielleicht sogar eine für den kompletten Header?
-
23. 10. 2007, 12:30 #8
Re: [php] File Up/Download, Speed limit, Resume
Den is ja mal cool
würde mich auch über den code freuen
-
23. 10. 2007, 13:12 #9
Re: [php] File Up/Download, Speed limit, Resume
Bei mir klappts sogar Einbahnstraße *kicher*
Zitat von BLU2

@brianjohnson: Probier es nochmal, ich habe einen "Accept Ranges"-Header hinzugefügt.
@FoXyLiOn: Nicht dass ich wüsste, du kannst dir ja per print_r() die komplette $_SERVER ausgeben lassen.
Ich habe den Download mit FlashGet getestet und das konnte ohne Probleme gleichzeitig 5 Streams runterladen. Ich pack den Code noch etwas ein und dann kommt er hier hin.
Ach, eine Frage habe ich noch: Ich nehme an, dass es kein verbindliches Charset für den HTTP-Header gibt. Das ist sehr schade, da Opera auf UTF8 und die anderen auf 8859-1 klarkommen wenn es um den Dateinamen geht (Content-Disposition: attachment; filename= ...). Bei Umlauten wirds dann immer komisch...
-
23. 10. 2007, 14:40 #10
Re: [php] File Up/Download, Speed limit, Resume
du kannst ja über
den passenden Charset setzen, vielleicht beeinflusst das auch das encoding vom header.PHP-Code:<?php
header('Content-Type: application/octet-stream;'.
'charset=utf-8'); // or iso-8859-1(5)
?>
ansonsten halt $_SERVER['HTTP_USER_AGENT'] den browser rausparsen und je nach typ anderes encoding auf den dateinamen anwenden... oder umlaute durch ae, oe, ue, usw. ersetzen
-
23. 10. 2007, 15:42 #11Mitglied
- Registriert seit
- Oct 2007
- Beiträge
- 93
Re: [php] File Up/Download, Speed limit, Resume
nimm besser:
Zitat von FoXyLiOn
so der free download manager zeigt jetzt alles korrekt an.PHP-Code:header('Content-type: application/pdf; charset=utf-8');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
-
23. 10. 2007, 15:49 #12
Re: [php] File Up/Download, Speed limit, Resume
Danke, das mit dem charset hat geholfen. Ich schreib noch schnell ne Test-Umgebung und dann sollte das erstmal fertig sein.
-
23. 10. 2007, 16:37 #13
Re: [php] File Up/Download, Speed limit, Resume
es ging um den zeichensatz, nicht um den Content-Disposition bzw. den Inhalt der Datei
Zitat von brianjohnson

-
23. 10. 2007, 17:46 #14
Re: [php] File Up/Download, Speed limit, Resume
Ok, dann will ich euch den Code nicht länger vorenthalten.
Ein paar Hinweise zur Benutzung:
Das Archiv besteht aus folgenden Dateien:
index.php (HTML-Seite zum Uploaden von Dateien)
download.php (HTML-Seite zum Downloaden von Dateien)
delete.php (HTML-Seite zum Löschen von Dateien)
pref.php (Enthält ein paar Einstellungen - Pfad, Limit, ...)
utils.php (Enthält ein paar Methoden für die HTML-Darstellung)
updown.php (Die eigentliche UpDownload-Klasse)
In der pref.php muss eingestellt werden, in welches Verzeichnis (relativ) hochgeladene Dateien gespeichert werden (da steht zur Zeit 'files/' drin). Das müsst ihr noch anlegen und In diesem muss der Webserver natürlich Schreibrechte haben. Zusätzlich sollte dieses Verzeichnis per .htaccess vor Zugriffen geschützt werden! Außerdem wird PHP 5 benötigt.
Technisch läuft das nun folgendermaßen ab: Eine hochgeladene Datei bekommt einen md5-Hash-Namen und wird dann im Dateien-Verzeichnis unter dem Namen hashwert.dat gespeichert (ich stamme noch aus DOS-Zeiten, in welcher jede Datei eine Endung zu haben hatte
). Zusätzlich wird eine Datei namens hashwert.txt angelegt. In dieser steht der Name der hochgeladenen Datei, ein paar weitere Infos und der Code der zum Löschen der Datei benötigt wird (ein md5-Hash halber Länge). Nach dem Hochladen wird ein Link zum Download und einer zum Löschen der Datei ausgegeben (aber das kennt ja jeder von RS).
Alles Test liefen bisher erfolgreich. Allerdings ist dies hier, das hier und jenes hier nicht implementiert (ich habe aber auch noch keine Anwendung gesehen, die darauf baute). Die Speed-Limit-Implementierung ist auch sehr rudimentär (z.B. ohne IP-Test) und nicht wirklich genau, aber für kleine Einsatzzwecke sicher ausreichend.
So das wars eigentlich schon.
Ich weiß nicht, wie andere Up/Downloads realisieren (habe noch keinen Code diesbzgl. gesehen), deshalb ist das alles mehr so als Idee eines Ahnungslosen zu verstehen. Ich würde daher auch gerne wissen, was ihr davon haltet und vor allem, wie es mit der Sicherheit bestellt ist. Der Code ist sehr kommentararm, wer Fragen dazu hat, kann mir ne PN schicken.
-
23. 10. 2007, 20:29 #15rebuilding
- Registriert seit
- Dec 2004
- Ort
- BW
- Beiträge
- 3.304
Re: [php] File Up/Download, Speed limit, Resume
Cool, danke sehr.
btw. Unter welcher Lizenz steht das Script, oder darf ich es verwenden, wie ich mag?
-
23. 10. 2007, 21:01 #16Sir Harry von Pansen
- Registriert seit
- May 2007
- Beiträge
- 112
Re: [php] File Up/Download, Speed limit, Resume
Herzlichen Dank,
kann man sicher gebrauchen^^
-
23. 10. 2007, 21:09 #17
Re: [php] File Up/Download, Speed limit, Resume
Zitat von ClemensBW
Auch von mir ein Danke schöön für dieses Script!PHP-Code:<?php
// Aus den Fingern gesogen 2007 von abflussrohr@gulli
// Der Code ist frei und darf verwurstet werden
?>
-
24. 10. 2007, 01:09 #18Mitglied
- Registriert seit
- Oct 2007
- Beiträge
- 93
Re: [php] File Up/Download, Speed limit, Resume
die sache mit octet/stream ist, dass das zwar von den gängigsten browsern unterstützt wird, aber eigentlich, wie eben da steht, einen 8 bit oktett stream darstellt. außerdem steht doch da der zeichensatz:
Zitat von FoXyLiOn
AUCH VON MIR HERZLICHEN DANK!Code:'Content-type: application/pdf; charset=utf-8'
-
24. 10. 2007, 13:52 #19
Re: [php] File Up/Download, Speed limit, Resume
Ja, der Code steht nicht unter irgendeiner Lizenz. Dazu ist er auch echt mal zu klein (da gibt es in den php-Comments aufwendigere). Ich gehöre auch nicht zu den Leuten, die jedem eigenen Furz noch nen Schild anhängen

-
24. 10. 2007, 15:41 #20rebuilding
- Registriert seit
- Dec 2004
- Ort
- BW
- Beiträge
- 3.304
Re: [php] File Up/Download, Speed limit, Resume
Fein, dann danke nochmal

-


Zitieren
mehr lesen...







Occupy Kiel: Massiver Sachschaden...
Heute, 20:15 in gulli:news