it4baer
Goto Top

Große Files posten mit php

Hallo,

ich habe mal wieder eine Frage. Von einem bekannten habe ich eine Funktion welches Daten verarbeitet und diese in sein System überführt... hier muss ich eine Datei "Posten" welche mit CURL aufbereitet wird.

$myFile = new CURLFile($file);

liegt die Datei auf dem Server wird diese nun verschickt und alles funktioniert wie gewollt...

jetzt möchte ich die Datei aber vom "lokelen Rechner" verschicken.
PHP-Upload steigt bei 128MB aus, ebenso erreiche ich irgendwann mal ein Timeout

nun die Frage wie ich Dateien von z.B. 1000MB RICHTIG hochlade bzw. dem CURL übergebe?

vielen Dank

schöne grüße

Content-ID: 347110

Url: https://administrator.de/contentid/347110

Ausgedruckt am: 25.11.2024 um 14:11 Uhr

BassFishFox
BassFishFox 23.08.2017 aktualisiert um 20:57:11 Uhr
Goto Top
Halloele,

Irgendwo auf dem Server zu dem Du die Dateien hochladen willst gibt es eine php*.ini. In dieser sind bestimmt solche oder aehnliche Eintraege.

upload_max_filesize = 1000M
post_max_size = 2000M
memory_limit = 3000M
file_uploads = On
max_execution_time = 180

Die muessen auch an Eure Gegebenheiten angepasst werden.

BFF
it4baer
it4baer 23.08.2017 um 21:03:00 Uhr
Goto Top
hm, aber wie funktioniert das dann z.B. in anderen tools welche locker 1gb hochladen?
=> z.B. telegram macht 1,5 in der Webapp <- welche auf meinem Server läuft

die datei pass ich mal an...
=> die 3 Minuten reichen für die execution time? oder sind das 3 Stunden?
BassFishFox
BassFishFox 23.08.2017 um 21:12:22 Uhr
Goto Top
Hallo,

Schau die Konfigurationen der entsprechenden Dienste an. Ftp hat eine, SMB hat eine usw. Irgendwo darin sind halt die Limits. face-wink

Welches Protokoll Telegram nutzt weiss ich nicht. Musst Du heraus finden.

max_execution_time = 180

Ja das sind Sekunden. Was diese Einstellung genau macht, ist hier -> http://php.net/manual/en/info.configuration.php

Warum kuemmert sich eigentlich Dein Bekannter sich nicht um die Einstellungen?

BFF
LordGurke
LordGurke 23.08.2017 um 22:03:11 Uhr
Goto Top
Die max_execution_time hat damit nichts zu tun. Darin wird nur reine Rechenzeit erfasst, nicht jedoch die Wartezeit auf Netzwerk, Dateisysteme oder Datenbanken.

Die weiter oben angegebenen Limits sind die, die auf dem Server angepasst werden müssen. Ggf. müssen auch Einstellungen am eingesetzten Webserver vorgenommen werden (kann im Apache httpd auch limitiert werden).
StefanKittel
StefanKittel 23.08.2017 um 23:17:25 Uhr
Goto Top
Hallo,

Du kannst Deine Datei auch in kleine Stücke unterteilen.
Da hat man weniger Konflikte und mehr Kontrolle. Aber es ist auch aufwendiger.

Viele Grüße

Stefan
it4baer
it4baer 24.08.2017 aktualisiert um 07:24:20 Uhr
Goto Top
@Stefan

das klingt gut... Ich habe mich schon "etwas" damit beschäftigt, leider finde ich noch kein gutes howto im Internet...

wie ich das sehe übernimmt JavaScript das zerteilen... aber wie geht das dann weiter? Schicke ich die Stücke an PHP und wie kommt meine Datei wieder zu einem Stück :D
=> interessant wäre, ob ich die datei überhaupt auf dem server hochladen muss, oder ob ich diese direkt übergeben kann!?

Danke
StefanKittel
StefanKittel 24.08.2017 um 07:28:19 Uhr
Goto Top
Moin

Zitat von @it4baer:
wie ich das sehe übernimmt JavaScript das zerteilen... aber wie geht das dann weiter? Schicke ich die Stücke an PHP und wie kommt meine Datei wieder zu einem Stück :D
Das JS liest die Datei in kleinen Happen ein und übergibt diese jeweils an eine PHP-Funktion.
Auf dem Server musst Du die Stücke dann in der richtigen Reihenfolge zusammensetzen und danach die Datei anhand einer Prüfsumme überprüfen ob die korrekt ist.

=> interessant wäre, ob ich die datei überhaupt auf dem server hochladen muss, oder ob ich diese direkt übergeben kann!?
??? Du hast eine Datei auf dem PC und die soll zum Server. Du kannst natürlich auch FTP, SSH, Samba oder andere Dienste nutzen.
Aber irgendwie muss die Datei ja dahin.

Stefan