Tach!
Jetzt bleibt nur noch die Frage, ob es geschickt ist, ganze Dateiinhalte (Megabytes) per application/x-www-form-urlencoded zum Server zu schaffen, oder ob man dafür doch besser multipart/form-data benutzen sollte?
Übertragen werden müssen die Daten ja wohl auf jeden Fall. Was sind die Eigenschaften der beiden Typen?
application/x-www-form-urlencoded überträgt alles als lange String-Wurst key=value&key=value
. Alles was kein alphanumerisches Zeichen ist, muss prozentkodiert werden. Das geht bei Binärdaten sehr auf die zu übertragende Menge. Nicht wesentlich besser wird die Sache, wenn Komprimierung eingesetzt wird. Am Server muss auf alle Fälle alles %XX-Zeug wieder rausgeparst werden. Diese Methode kann man bei den geplanten Datenmengen lediglich für Text-Inhalt oder Base64-kodierte Daten ohne gravierende Nachteile nehmen. Base64 braucht dann aber auch wieder einer Dekodiervorgang. - Außerdem belegt PHP belegt noch viel Speicher, weil es dir die Daten in $_POST übergibt, also im Memory.
multipart/form-data hingegen kann Daten auch ohne weiteres binär transportieren. Damit enfällt das Kodieren auf Senderseite und das Dekodieren auf Empfängerseite. Der Empfangsprozess muss lediglich nach der Boundary Ausschau halten. Zudem schreibt dir der Webserver eine Datei und schont so den Arbeitsspeicher.
dedlfix.