Einfaches Upload Formular
Im folgenden finden Sie ein einfachen Beispiel um einen Dateiupload zu realisieren.
Schritt 1: Anlegen eines Ordners
Loggen Sie sich zunächst per FTP auf Ihrem Server ein und erstellen Sie ein Verzeichnis, in dem die hochgeladenen Dateien gespeichert werden sollen. In unserem Beispiel nennen wir den Ordner "uploads". Nun werden noch zwei Dateien benötigt: Ein HTML-Formular (upload.html) und das PHP Skript, welches die Verarbeitung vornimmt (upload.php).
Schritt 2: Das HTML-Formular
Erstellen Sie auf Ihrem Webspace eine Datei mit dem Namen upload.html und füllen Sie diese mit dem folgenden Inhalt:
<form enctype="multipart/form-data" action="upload.php" method="post">
Datei auswälen:
<input name="file" type="file" />
<input value="Hochladen" type="submit" />
</form>
Hier wird das (noch zu erstellende Script "upload.php") aufgerufen.
Schritt 3: Das PHP-Skript
Nun benötigen Sie den vollständigen Pfad zum Upload-Verzeichnis. Den ersten Teil des Pfads finden Sie im KIS unter dem Punkt
Produktverwaltung - Ihr Produktbereich - Konfigurieren - Allgemeines - Allgemeine Informationen
In unserem Beispiel nehmen wir das bereits weiter oben erstellte Verzeichnis "uploads" unterhalb des Hauptverzeichnisses unserer Domain (hier /www) als Upload-Verzeichnis. Der vollsändige Pfad könnte also wie folgt lauten:
/is/htdocs/wp123456_ABCDEFGHI/www/uploads
Erstellen Sie nun die Datei uploads.php auf Ihrem Webspace und füllen Sie diese mit folgendem Inhalt. Achten Sie darauf den Inhalt der Variablen "$pfadname" durch den vollständigen Pfad zum Upload-Verzeichnis in Ihrem Webspace zu ersetzen:
<?php
$pfadname = "/is/htdocs/wp123456_ABCDEFGHI/www/uploads/";
if( file_exists( $pfadname . $_FILES["file"]["name"]) ) {
print $_FILES["file"]["name"] . " existiert bereits";
} else {
move_uploaded_file( $_FILES["file"]["tmp_name"], $pfadname. $_FILES["file"]["name"] );
print "gespeichert in: " . $pfadname . $_FILES["file"]["name"];
}
?>
Nun können Sie die uploads.html über Ihre Domain aufrufen und Dateien auf Ihren Webspace hochladen. Beachten Sie dabei, dass Sie die maximal zulässige Dateigröße von 32 MB nicht überschreiten dürfen. Ab dem WebHosting Basic, vorausgesetzt dieses wurde nicht vor 2018 bestellt, kann dieser Wert jedoch per .htaccess Datei erhöht werden (php_value upload_max_filesize XXM , php_value post_max_size XXM). Bei älteren WebHosting Basic Paketen welche vor 2018 bestellt wurden, ist diese Anpassung nicht möglich. Bei den älteren Paketen kann die Einstellung erst ab dem WebHosting Medium bzw. WebPack L vorgenommen werden.
Weitergehende Infos zu dem Thema finden Sie unter: http://www.php.net/manual/en/features.file-upload.php.
Checksummenprüfung
Mit nachfolgendem PHP-Skript besteht die Möglichkeit, die Integrität von Dateien nach einem FTP-Upload zu testen. Dabei wird eine Checksumme erstellt. Bitte beachten Sie, dass nur der Inhalt des Ordners getestet werden kann, in dem sich das PHP-Script befindet.
Das PHP-Script
<?php
// Welches Verzeichnis (Standard: Aktuelles Verzeichnis) ?
$pfad = '.';
// Modus (siehe de.php.net/manual/en/function.hash-file.php )
$hash = 'sha1';
// Hier wird die Liste erzeugt und ausgegeben
if( substr( $pfad, -1 ) != '/' ) $pfad .= '/';
$res = opendir( $pfad );
echo '<pre>'
;
while( ( $dateiname = readdir( $res ) ) ) {
if( !@is_dir( $pfad . $dateiname ) and @is_readable( $pfad . $dateiname ) ) {
printf( "%-'.64s%-50s\n", $dateiname, hash_file( $hash, $pfad . $dateiname ) );
} else {
printf( "%-'.64s%-50s\n", $dateiname, 'nicht lesbar / Verzeichnis' );
}
}echo '</pre>';
?>
Weitergehende Infos zu dem Thema finden Sie unter: http://de.php.net/manual/en/function.hash-file.php.
Anzeige von Dateien im temporären Verzeichnis
Manchmal kann es beim debuggen von Skripten hilfreich sein, wenn man Zugriff auf die erstellten Dateien im temporären Verzeichnis hat. Der Zugriff darauf ist jedoch per FTP nicht möglich.
Aus diesem Grund finden Sie hier ein Skript, mit welchem Sie sich die Dateien im temporären Verzeichnis anzeigen lassen können. Ersetzen Sie dabei den markierten Teil mit dem Pfad zu Ihrem temporären Verzeichnis. Den Pfad zu Ihrem temporären Verzeichnis finden Sie im KIS unter "Produktverwaltung - Ihr Produktbereich - Konfigurieren - Allgemeines - Allgemeine Informationen" unter "Tmp-Pfad".
<?php
// Hier bitte den Pfad zu Ihrem temporären Verzeichnis eintragen
$mytmppfad = "/is/htdocs/user_tmp/wpXXXXXXX_XXXXXXXXXX/";
if( $handle = opendir( $mytmppfad ) ) {
print "<table><tbody><tr><td>Dateiname</td><td>Größe</td><td>Rechte</td></tr>";
while( FALSE !== ( $file = readdir($handle) ) ) {
if($file != "." and $file != "..") {
print "\n<td>" .$file. "</td><td>" .filesize($mytmppfad.$file). " Byte</td>"
. "<td>" .substr(decoct(fileperms($mytmppfad.$file)), 3). "</td></tr>";
}
}
closedir($handle);
print "</tbody></table>";
} else {
print "Fehler beim auslesen des Tmp-Verzeichnisses!";
}
?>