Forenindex » Programmierung/Entwicklung » PHP und MySQL » Upload-Formular: Problem mit großen Dateien

Upload-Formular: Problem mit großen Dateien

Semmelrocc
Beiträge gesamt: 3

5. Jun 2003, 14:11
Bewertung:

gelesen: 1546

Beitrag als Lesezeichen
Hallo,

habe auf Website ein Formular eingebunden, mit dem man Binärdateien von der lokalen Festplatte auf einen Server laden kann. Ich benutze die PHP-Funktion ftp-put, um das zu bewerkstelligen. Funktioniert soweit auch gut. Mit einer PHP.ini habe ich auch den Upload_Max_Filesize - Flaschenhals von max. 2MB Dateigröße beseitigt und auf 50 MB gesetzt, was auch funktioniert. Leider habe ich festgestellt, dass Uploads mit mehr als 10 MB Dateigröße nicht funktionieren. Am Ende, nachdem er schon fleißig am Laden war, erscheint im Browser ein Popup-Fenster mit der Meldung "Dokument enthält keine Daten". Meine Vermutung ist, dass diese Meldung nicht erscheint, weil die Datei eine bestimmte Größe überschritten hat, sondern weil es einen Timeout gibt.
Wer kann mir bei dem Problem helfen? Ich bin eher Neuling in Sachen Apache und PHP (lerne jedoch täglich kräftig dazu ;-).

Danke für Hilfe!

Upload-Formular: Problem mit großen Dateien

oesi50
  
Beiträge gesamt: 2315

5. Jun 2003, 14:37
Bewertung:

gelesen: 1546

Beitrag als Lesezeichen
Hi Semmelrocc,
hast Du schon mal versucht, in deiner php.ini den wert

max_execution_time

höher einzustellen?

Grüße Oesi

(Dieser Beitrag wurde von oesi50 am 5. Jun 2003, 14:42 geändert)

Upload-Formular: Problem mit großen Dateien

Anonym
Beiträge gesamt: 22827

5. Jun 2003, 15:23
Bewertung:

gelesen: 1546

Beitrag als Lesezeichen
Ja, der Wert steht momentan auf 500. Zählt denn das Warten auf Komplettierung eines Uploads als Execution Time? Dann müsste ich ja einen ziemlich großen Wert eingeben für jemanden, der mit ISDN versucht, eine 30 MB-Datei hochzuladen...

Upload-Formular: Problem mit großen Dateien

Semmelrocc
Beiträge gesamt: 3

5. Jun 2003, 15:35
Bewertung:

gelesen: 1546

Beitrag als Lesezeichen
Oh, der unbekannte war ich. War nicht eingeloggt...
Habe jetzt mal die max_execution_time auf 2500 gestellt, was dazu führte, dass meine besagte Fehlermeldung nun noch früher als vorher auf dem Bildschirm erscheint.

Upload-Formular: Problem mit großen Dateien

oesi50
  
Beiträge gesamt: 2315

5. Jun 2003, 15:39
Bewertung:

gelesen: 1546

Beitrag als Lesezeichen
2 Fragen:
- wie nimmt Dein Script die Daten entgegen?
- wie nimmt der FTP-Server die Daten entgegen?

Lass doch mal mit 'echo' an den entsprechenden Stellen ein paar Statusmeldungen ausgeben.

Grüße Oesi

Upload-Formular: Problem mit großen Dateien

Semmelrocc
Beiträge gesamt: 3

5. Jun 2003, 16:22
Bewertung:

gelesen: 1546

Beitrag als Lesezeichen
Das Formular gibt die Daten mit "Post" weiter, mein Script gibt sie per ftp_put weiter. Ist eine relativ einfache Sache, da User und Password fest vorgegeben sind, das einzige dynamische an dem Skript ist die Dateiauswahl und die Benennung der Datei auf dem Server.

Während ich dies schreibe, habe ich allerdings eine Erfolgsmeldung zu verzeichnen. Das Skript verbindet sich bei Ausführung mit einem anderen Server, wo die Daten gespeichert werden. Bisher hatte ich angenommen, dass ich die php.ini auf dem Speicherort anpassen muss. Aber entscheidend ist ja, wo das Skript ausgeführt wird und nicht, wo die Daten gespeichert werden.
Also habe ich die php.ini auf dem skript-server geladen und siehe da, der Upload hat jetzt doch funktioniert (mit Wert 2500)! :)

Wo ich aber schonmal hier poste: an welchen Hürden kann ich noch scheitern? Die Obergrenze für Uploads habe ich auf 50 MB gesetzt. Das Timeout-Problem sollte vorerst, zumindest für DSL-Nutzer ausgeräumt sein. Gibt es eine sinnvolle Obergrenze für die max_execution_time oder kann ich den Wert ruhigen Gewissens auch für ISDN-Verbindungen anpassen (was bedeuten würde, den Wert auf 5000 zu setzen)?

Upload-Formular: Problem mit großen Dateien

Miro Dietiker
Beiträge gesamt: 699

5. Jun 2003, 16:26
Bewertung:

gelesen: 1546

Beitrag als Lesezeichen
PHP verhält sich beim entegegennehmen von grossen Dateien auf
Windows und Unix generell unterschiedlich:
WIN: Die Uploadzeit (auch externe Befehle) zählt zur Executiontime
des PHP Moduls :(
LINUX: Die Uploadzeit wird konsequent den einzelnen Prozessen
zugeordnet, wobei die Datei zuerst bsp. über Apache empfangen wird
(Also Upload auf seine Zeit geht) und erst dann dem PHP-Script
weitergereicht wird!

Hier kann man sich unter win die Zähne ausbeissen :(

GrEeZ: Miro Dietiker