Die nun beschriebene Zeile ist der eigentliche Code, der
wirklich nur eine einzige Zeile beträgt. copy();
Die hochgeladene Datei wird mit copy(); lediglich
vom temporären Ort in den eigentlich gewünschten Ordner kopiert, in dem
Falle ist der Ordner gleich dem Ordner, in dem sich das upload.php Script
befindet. Möchte man einen anderen Ordner bestimmen, so könnte das entsprechend
so aussehen: copy($datei,"/ordner/$dateiname");
Sobald das Script abgearbeitet ist, wird die Datei automatisch am temporären Ort
gelöscht, hierum brauchen wir uns nicht kümmern.
copy($datei,"$dateiname");
Nun sollte die Datei erfolgreich hochgeladen sein, dies
überprüfen wir sicherheitshalber noch mit der bereits kennengelernten Funktion
file_exists(); - ist die Datei vorhanden, so geben
wir eine erfolgreiche Statusmeldung aus, ist dies nicht der Fall, muss folglich
ein Fehler aufgetreten sein. Das Script ist abgeschlossen
<?php
if(file_exists($dateiname))
{
echo "<br>Die Datei <b>$datei_name</b> wurde mit <b>$datei_size Byte</b> erfolgreich
hochgeladen";
}
elseif(!file_exists($dateiname))
{
echo "Die Datei ist nicht vorhanden";
}
?>
Die Funktion check_datei();
Eine wichtige Funktion im Script stellt die Funktion
check_datei(); dar. Diese verhindert, dass Dateien
überschrieben werden. Ich habe dieses Problem über eine rekursive Funktion
gelöst. Wichtig! Diese Datei muss am Anfang des Scripts aufgeführt werden, am
besten direkt nach dem einführenden <?php Tag!
Hier ist es nun entscheidend, dass wir, wie zuvor gezeigt,
die Variable $datei_name an $dateiname
übergeben haben. Beide definieren wir als globale Variablen. Zunächst legen wir
den $backupstring fest, dieser ist wie hier von mir
als "copy_of_" definiert, dies kann natürlich auch bei Ihnen anders lauten. Die
Funktion wird, wie oben gezeigt, dann eingesetzt, wenn bereits durch file_exists(); festgestellt wurde, dass bereits eine gleichnamige Datei
existiert. Somit hängen wir in diesem Falle den Zusatzstring
$backupstring durch eine Zeichenverkettung an, die
wie zu sehen ist, lautet $backupstring."$dateiname";
Nun taucht jedoch ein weiteres Problem auf: Was tun, wenn auch bereits diese
Datei schon einmal vorhanden ist? Hier kommt der rekursive Funktionsteil zum
Einsatz. Wir überprüfen auch in der Funktion und nach Anhängen des Zusatzstrings
$backupstring, ob auch diese Datei bereits exitiert.
Diese Überpfrüfung wird solange durchgeführt (rekursiv), bis dies nicht mehr der
Fall ist. Solange durchläuft das Script also die Funktion check_datei(); Die Datei wird also in keinem Fall überschrieben, sondern
bekommt einen Anhang des Dateinamens, hier "copy_of_";
<?php
function check_datei()
{
global $datei_name, $dateiname;
$backupstring = "copy_of_";
$dateiname = $backupstring."$dateiname";
if(file_exists($dateiname))
{
check_datei();
}
}
?>
function check_datei()
{
global $datei_name, $dateiname;
$backupstring = "copy_of_";
$dateiname = $backupstring."$dateiname";
if(file_exists($dateiname))
{
check_datei();
}
}
if(!empty($datei))
{
$dateiname = $datei_name;
if(file_exists($datei_name))
{
check_datei();
echo "Die Datei mit dem Dateinamen <b>$datei_name</b> existierte bereits.<br> Ihre Datei wurde in <b>$dateiname</b> umbenannt";
}
if($datei_size > $MAX_FILE_SIZE)
{
echo "Die Datei ist zu groß, die maximale Dateigrösse beträgt $MAX_FILE_SIZE Byte(s)";
}
else
{
copy($datei,"$dateiname");
if(file_exists($dateiname))
{
echo "<br>Die Datei <b>$datei_name</b> wurde mit <b>$datei_size Byte</b> erfolgreich hochgeladen";
}
elseif(!file_exists($dateiname))
{
echo "Die Datei ist nicht vorhanden";
}
}
}
?>
Warum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.