Zitat von
jfheins:
Es könnte vll. was bringen, wenn du immer 4 Bytes liest statt 2 ... und evtl. statt substr direkt über die array-notation gehst.
Ok, ich probiers mal damit, vielleichts gehts dann ja etwas schneller
Zitat von
jfheins:
Ansonsten bringts vll. was auf Base64 umzusteigen, das macht die Datei dann nicht doppelt so lang sondern nnur 4/3
Ok, wenn ich die Binärdaten dann per Base64 im
XML-Knoten gespeichert habe, wie bekomm ich die dann wieder in eine Binärdatei in php? Ich muss doch dann auch wieder "pack" benutzen. Oder gibts da vielleicht eine php-Funktion, die das bereits macht?
Zitat von
jfheins:
Ansonsten: Könntest du diese Große Datei nicht einfach seperat übergeben?
So wie ein Upload-Feld in einem Formular als multipart request, sodass du im
xml nur noch den dateinamen reinschriebst, und die eigentliche datei seperat übergibst?
Wäre
imho die bessere Lösung ...
Ich wollt ja gerade weg von mehreren Upload-Feldern. Bisher hab ich es ja auch so, doch ich wollt einfach eine kompakte Datei hochladen.
[EDIT]
Ich hab es nun mit Base64 gemacht, was jetzt extrem schnell funktioniert. Damit ist das Thema erledigt. Danke an jfheins für den Tip mit Base64 - hab daran garnicht gedacht
Für alle, die wissen wollen, wie es geht:
Code:
function XMLBinaryToFile($xmlData, $TargetFile)
{
// $xmlData : Daten Base64 - kodiert
// $TargetFile : Zieldatei
// 'wb' : Schreiben + Binär
$aFile = fopen($TargetFile, 'wb');
fwrite($aFile, base64_decode( $xmlData )) ;
fclose($aFile);
}