Edit: Die Psots meiner Voredner habe ich erst gesehen, nachdem ich diesen Beitrag geschrieben habe
Svn, upload
@chriz, @eagle275: Naja der Nutzer soll in der Anwedung ein Knöpfchen drücken und dann macht das System ein Update. Ein Upload als manuell Möglichkeit ist natürlich nicht ausgeschlossen. Jedoch nicht für jeden Nutzer komfortabel.
@mquadrat: Du meinst unter der Verwendung von cURL oder Sockets oder was anders?
@xm22: Nur ist cURL nicht auf jedem Server mit installiert. Besonders bei Webspace ist das ein Problem, da der Nutzer nicht einfach cURL installieren kann.
Dann müsste ich wohl mit curl_setopt(_array) die Option CURL_POST = true und CURL_POSTFIELDS = array $params für einen Login.
Theoretisch würde die folgende Funktion nach einer Authentifierzierung eine Datei herunterladen. Am besten wäre hier natürlich eine Liste der Dateien die Heruntergelden werden sollen um anschließend die Liste abzuarbeiten.
Die Funktion:
PHP-Code:
<?php
function downloadFileByAuth($file, $filename,$authParams)
{
echo "Attempting message download for " . $file ." \n";
$out = fopen($filename, 'wb');
if ($out == FALSE){
print "File not opened<br>";
exit;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_FILE, $out);
curl_setopt($ch, CURLOPT_HEADER, 0);
// -- AUTH via POST -- //
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $authParams);
// -- AUTH via POST
curl_setopt($ch, CURLOPT_URL, $file);
curl_exec($ch);
echo "Error is : ".curl_error ( $ch) . "\n";
curl_close($ch);
//fclose($handle);
}
?>
So könnter der Download mit einer Update Funktion aussehen:
PHP-Code:
function systemUpdate(){
//hole Dateiliste als serialisiertes array:
$authParams = array('user' => 'ladida','password' => md5('pass'), 'licence' => '8s7v5s5d78v68v76');
downloadFileByAuth('filelist.sar', '/update/filelist.sar', $authParams);
$fileListArray = unserialize(file_get_contents('/update/filelist.sar'));
foreach($fileListArray as $fileArr){
downloadFileByAuth($fileArr['hash'], '/update/' . $fileArr['hash'], $authParams);
}
//Funktionen zum Updaten des systems
//das Filearr binhaltet nben dem Hash auch den Datei-Pfad und Datei-Name, Datei-Version, Erstelldatum etc.
//...
}
Das ganze wird natürlich objektorientiert entwickelt. Wenn jemand noch Ergänzungen hat, dann immer her damit. Jedoch sei Punkt eins nicht außer Acht zu lassen!
MfG