Bei Diesem Beispiel werden Dateien von einem Client zum Webserver in ein Verzeichnis hochgeladen.
Das Upload-Verzeichnis wird durch das PHP-Script auf dem Server erstellt und erhält den Namen aus der IP-Adresse des Clients.
Die Dateinamen der hochgeladenen Dateien werden mit einem Timestamp versehen.
Mit der Datei „files.txt“ wird festgelegt welche Dateien der Client hochladen soll.
Auf dem Web-Server in einem Upload-Verzeichnis die Datei „files.txt“ anlegen.
Darin sind die Pfade zu den Dateien, welche upgeloader werden sollen.
Weiterhin erstellt man eine PHP-Datei namens „upload.php“
Inhalt:
<?php $uploaddir = '<PFAD_ZU:UPLOAD_DIR>'; if (!file_exists($_SERVER["REMOTE_ADDR"])) { mkdir($uploaddir ."/". $_SERVER["REMOTE_ADDR"], 0777, true); } $uploadfile = $uploaddir ."/". $_SERVER["REMOTE_ADDR"] ."/". time() . '_' . basename($_FILES['userfile']['name']); //echo '<pre>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "Datei '".basename($_FILES['userfile']['name'])."' ist valide und wurde erfolgreich hochgeladen.\n"; } else { echo "Dateiupload konnte nicht hochgeladen werden!\n"; } //echo 'Weitere Debugging Informationen:'; //print_r($_FILES); //print "</pre>"; ?>
Auf dem Client, welcher die Dateien hochladen soll, legt man ein Script namens „upload.sh an:
Inhalt:
#!/bin/bash TMP_DIR=/tmp FILELIST=files.txt SERVER=<SERVER_NAME> UPLOAD_DIR=<WEBSERVER_DIR_NAME> UPLOAD_PHP=upload.php USER="<USERNAME>" PASSWORD="<PASSWORD>" CURL_OPTS="-s -k -u ${USER}:${PASSWORD}" curl ${CURL_OPTS} https://${SERVER}/${UPLOAD_DIR}/${FILELIST} | while read line; do curl ${CURL_OPTS} -F "userfile=@${line}" https://${SERVER}/${UPLOAD_DIR}/${UPLOAD_PHP}; done