Dateien größer 2GB

Enthält archivierte Beiträge von Hotschi's Board zum Download MOD.
Posten ist hier nicht möglich, bitte das Supportforum dafür verwenden!
Gesperrt
Dungeonwatcher

Dateien größer 2GB

Beitrag von Dungeonwatcher »

Moin! 8)

Als Exot was das verwendete Betriebssystem (OS/2) angeht, habe ich mal wieder einen Sonderfall zu "bemängeln". :roll:

Und zwar betrifft es die Anzeige der Dateigröße bei Dateien größer als 2 GB.

--> http://dungeon-bbs.homeip.net/forum/dow ... tail&id=35

Mein australischer Lieblingsprogrammierer (von ihm kommt die PHP/2 Version 5.1.5) schrieb mir dazu folgendes:
From the PHP website:
int filesize ( string filename )

Returns the size of the file in bytes, or FALSE (and generates an error of level E_WARNING) in case of an error.

Note: Because PHP's integer type is signed and many platforms use 32bit integers, filesize() may return unexpected results for files which are larger than 2GB. For files between 2GB and 4GB in size this can usually be overcome by using sprintf("%u", filesize($file)).
Wenn ich das richtig verstehe, dann kann dies durchaus korrigiert werden. Allerdings ist hierbei mal wieder der große Meister @oxpus gefragt. :wink:
oxpus

Beitrag von oxpus »

Dateien grösser 2 GB?????????????
Was zum Henker sind denn das für Files?????
Dungeonwatcher

Beitrag von Dungeonwatcher »

oxpus hat geschrieben:Dateien grösser 2 GB?????????????
Jupp.
Was zum Henker sind denn das für Files?????
z.B. das aktuelle "..."... :wink:
oxpus

Beitrag von oxpus »

Öhm, nein, für sowas werde ich keine Änderungen machen.
Ich bitte da um Verständnis.
Die Funktionen in der class_dlmod.php sind beschrieben und können daher von jedem selber leicht geändert werden.
Aber ich werde für solche Dateien keine Anpassungen vornehmen.
Sorry...
Dungeonwatcher

Beitrag von Dungeonwatcher »

oxpus hat geschrieben:Öhm, nein, für sowas werde ich keine Änderungen machen.
:cry:
Ich bitte da um Verständnis.
Nööö... :wink:
Die Funktionen in der class_dlmod.php sind beschrieben und können daher von jedem selber leicht geändert werden.
Das sagst du. Für mich sind das böhmische Wälder mit 'nem Bahnhof darin... :roll:
Aber ich werde für solche Dateien keine Anpassungen vornehmen.
Sorry...
Null Problemo... 8)

Falls du aber doch mal mit dem Gedanken spielen solltest... :wink:
oxpus

Beitrag von oxpus »

... sofern die Dateigrössen allgemein dieses Niveau erreichen sollten, aber dann dürfte ich schon in Rente sein :D
Dungeonwatcher

Beitrag von Dungeonwatcher »

Hi! 8)

Gaaanz vorsichtig nochmal nachfrag... Du bist ja gerade mächtig am programmieren, evtl. fällt ja doch 'n Menütchen ab um dies zu "fixen"... :roll: :wink:

Denn dies betrifft nicht nur die Anzeige der Dateien sondern auch die Statistik:

Bild

Bye/2
oxpus

Beitrag von oxpus »

Führe mal folgenden SQL-Befehl aus:

Code: Alles auswählen

select overall_klicks * file_size FROM phpbb_downloads where id = X;
wobei X die ID des verunstalteten Downloads ist.
Wenn dort schon minus rauskommt, kann es auch ein Problem mit der Datenbank selber geben.
Dazu auch mal prüfen, wieviele Gesamtklicks dieser Download bereits hat.

Und nochmal:
Ich werde für solch extrem großen und bislang noch sehr selten verwendeten Dateien nicht anfangen, den MOD in Grundstrukturen zu verändern...
Dungeonwatcher

Beitrag von Dungeonwatcher »

oxpus hat geschrieben:Führe mal folgenden SQL-Befehl aus:
Jupp, mit der o.g. Beispieldatei getan. Das Ergebnis: -8082342975
Das ist die Hälfte des vom DL Mod angezeigten Wertes: 1616468595 b
Wobei hier noch die letzte Null fehlt, denn es müsste dort 16164685950 b stehen. Ganz korrekt wäre jedoch: 2.615.677K
Wenn dort schon minus rauskommt, kann es auch ein Problem mit der Datenbank selber geben.
Ähm, du meinst das das hier eingesetzte MySQL 5.0.27 sich da verhaut?
Dazu auch mal prüfen, wieviele Gesamtklicks dieser Download bereits hat.
Es sind aktuell 5 Klicks.
Und nochmal:
Ich werde für solch extrem großen und bislang noch sehr selten verwendeten Dateien nicht anfangen, den MOD in Grundstrukturen zu verändern...
:cry: Sooo selten sind die nun mittlerweile auch nicht mehr. Gerade sauge ich die aktuelle Version von AA (knapp 2,6GB). :wink:
oxpus

Beitrag von oxpus »

Du bist der einzigste, den ich kenne, der solch grosse Dateien mit dem MOD verwaltet ;)
Dungeonwatcher

Beitrag von Dungeonwatcher »

Da drängt sich meine Kiste doch direkt zum Testen auf. :wink:

Egal, eie interpretierst du denn das Ergebnis der SQL Abfrage?
oxpus

Beitrag von oxpus »

Ich teste noch...

Wie groß ist das Feld file_size in Deiner downloads-Tabelle?
Müsste bigint(20) sein, nach dem letzten MOD-Release ;)
Die Datenbank kann nämlich sehr wohl mit diesen grossen Zahlen umgehen, wenn die Basisdaten auch stimmen :D
Dungeonwatcher

Beitrag von Dungeonwatcher »

oxpus hat geschrieben:Wie groß ist das Feld file_size in Deiner downloads-Tabelle?
Müsste bigint(20) sein, nach dem letzten MOD-Release
Korrekt, genau so ist es.
Die Datenbank kann nämlich sehr wohl mit diesen grossen Zahlen umgehen, wenn die Basisdaten auch stimmen
Alles andere hätte mich auch sehr gewundert.
oxpus

Beitrag von oxpus »

Also das Feld hat die Grösse?
Dann musst Du nochmal die Dateigrössen prüfen lassen, damit die "fehlende" 0 mit eingetragen und die Zahl damit 11stellig wird...
Dungeonwatcher

Beitrag von Dungeonwatcher »

oxpus hat geschrieben:Also das Feld hat die Grösse?
Korrekt.
Dann musst Du nochmal die Dateigrössen prüfen lassen, damit die "fehlende" 0 mit eingetragen und die Zahl damit 11stellig wird...
Hmmm, stelle ich mich mal wieder zu dämlich an, denn das funktioniert leider nicht?
Wenn ich DL Verwaltung gehe und diesen DL bearbeite und anschliessend speicher, ändert sich die Angabe der Dateigröße nicht. Es fehlt weiterhin die 0. Abgesehen davon steht in der DL Verwaltung eine andere Dateigröße (-1,578,626.01) als im öffentl. DL Bereich (-1616513036 B).
oxpus

Beitrag von oxpus »

Öhm, wenn das Feld BIGINT(20) wäre, könnten dann Zahlen bis zu 9223372036854775807 gespeichert werden. Also deutlich mehr, als Deine Datei groß ist.
Welches PHP hast Du im Einsatz?
Vielleicht gibts hier Grenzen...
Dungeonwatcher

Beitrag von Dungeonwatcher »

oxpus hat geschrieben:Öhm, wenn das Feld BIGINT(20) wäre
Jupp, definitiv.
Welches PHP hast Du im Einsatz?
Vielleicht gibts hier Grenzen...
v5.2.0

Wenn ich per PHPMyAdmin eine Null hinzufüge, dann wird sie auch entsprechend angenommen und auch im DL Bereich angezeigt.
oxpus

Beitrag von oxpus »

Komisch, daß meine Tests positiv verlaufen...
Dungeonwatcher

Beitrag von Dungeonwatcher »

Tja, mein System war schon immer etwas anders... :roll:

Woran könnte es denn dieses Phenomen liegen:
Abgesehen davon steht in der DL Verwaltung eine andere Dateigröße (-1,578,626.01) als im öffentl. DL Bereich (-1616513036 B).
oxpus

Beitrag von oxpus »

Einmal als Kilobyte und einmal als "formatierte" Zahl. Ist so gewollt...
Dungeonwatcher

Beitrag von Dungeonwatcher »

Ahja.

Na dann guten Rutsch! Für dieses Jahr habe ich nicht mehr vor hier zu "nerven". :wink:
metalmatze

Download-Größe falsch angezeigt...

Beitrag von metalmatze »

Der Fehler ist relativ einfach zu beheben.
Naja... wir haben 3 Stunden gebraucht, um die Lösung zu finden, aber sie ist supereinfach:

Die PHP-Funktion filesize() hat eine Begrenzung auf 2 GB. Alles darüber wird direkt nicht richtig angezeigt. Dies kann man aber sozusagen doch erreichen:

einfach die betreffenden " @filesize([xy]) " in " sprintf("%u",@filesize([xy])) " ändern, und es funktioniert.

Ich nutze auch so grosse Dateien, da ich das Download-Mod im Netzwerk eines Internates zum Verbreiten von Fedora und anderen Linux-Versionen nutze. Das sollte nicht über Samba geschehen. Bei mir funktioniert diese Variante einwandfrei, auch bei Dateien über 4 GB.

Vielleicht baut ihr das Mod ja doch um, da es meiner Meinung nach gar nicht mehr so lange dauern dürfte, bis solche Größen öfter verwendet werden. Außerdem ist der Aufwand nicht wirklich groß, es sind ja nur 5-10 Funktionen gewesen, die sich leicht ergänzen ließen.


Hoffe ich konnte weiterhelfen.
Dungeonwatcher

Re: Download-Größe falsch angezeigt...

Beitrag von Dungeonwatcher »

Moin! 8)


Du bist mein Held. :)

Das habe selbst ich hinbekommen mit dem Ändern der Funktionen. Dankeschön für diesen Tip.

@oxpus das sollte in der evtl. nächsten Version unbedingt mit umgesetzt werden. :roll: :wink:

Bye/2
oxpus

Beitrag von oxpus »

Ist notiert...
Dungeonwatcher

Beitrag von Dungeonwatcher »

Moin! 8)

DANKE :wink:

Bye/2
Gesperrt