Php-upload

Beispiel

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