Computerwissenschaften

PHP-Skript, mit dem Website-Besucher Dateien hochladen können

01 von 06

Das HTML-Formular

Wenn Sie Besuchern Ihrer Website erlauben möchten, Dateien auf Ihren Webserver hochzuladen, müssen Sie zuerst PHP verwenden. um ein HTML-Formular zu erstellen, mit dem Benutzer die Datei angeben können, die sie hochladen möchten. Obwohl der Code später in diesem Artikel zusammengestellt wird (zusammen mit einigen Sicherheitswarnungen), sollte dieser Teil des Codes folgendermaßen aussehen:

Bitte wählen Sie eine Datei:

Dieses Formular sendet Daten an Ihren Webserver an die Datei „upload.php“, die im nächsten Schritt erstellt wird.

02 von 06

Hochladen der Datei

Der eigentliche Datei-Upload ist einfach. Dieser kleine Code lädt Dateien hoch, die von Ihrem HTML-Formular an ihn gesendet wurden.

$ target=“upload /“;
$ target=$ target. Basisname ($ _FILES [‚hochgeladen‘] [‚Name‘]);
$ ok=1; if (move_uploaded_file ($ _ FILES [‚uploaded‘] [‚tmp_name‘], $ target))
{
echo „The file“. Basisname ($ _FILES [‚uploadedfile‘] [’name‘]). „wurde hochgeladen“;
}
else {
echo „Es ist ein Problem beim Hochladen Ihrer Datei aufgetreten.“;
}
?>

Die erste Zeile $ target=“upload /“;  Hier weisen Sie den Ordner zu, in den Dateien hochgeladen werden. Wie Sie in der zweiten Zeile sehen können, ist dieser Ordner relativ zur Datei upload.php . Wenn sich Ihre Datei unter www.yours.com/files/upload.php befindet, werden Dateien auf www.yours.com/files/upload/yourfile.gif hochgeladen. Denken Sie daran, diesen Ordner zu erstellen.

Anschließend verschieben Sie die hochgeladene Datei mit move_uploaded_file () an den Ort, an den sie gehört . Dadurch wird es in dem am Anfang des Skripts angegebenen Verzeichnis abgelegt. Wenn dies fehlschlägt, erhält der Benutzer eine Fehlermeldung. Andernfalls wird dem Benutzer mitgeteilt, dass die Datei hochgeladen wurde.

03 von 06

Begrenzen Sie die Dateigröße

Möglicherweise möchten Sie die Größe der Dateien begrenzen, die auf Ihre Website hochgeladen werden. Angenommen, Sie haben das Formularfeld im HTML-Formular nicht geändert – es heißt also immer noch „hochgeladen“ -, wird bei diesem Code die Größe der Datei überprüft. Wenn die Datei größer als 350 KB ist, wird dem Besucher der Fehler „Datei zu groß“ angezeigt, und der Code setzt $ ok auf 0.

if ($ uploaded_size> 350000)
{
echo „Ihre Datei ist zu groß.
„;
$ ok=0;
}}

Sie können die Größenbeschränkung auf größer oder kleiner ändern, indem Sie 350000 in eine andere Zahl ändern. Wenn Sie sich nicht für die Dateigröße interessieren, lassen Sie diese Zeilen weg.

04 von 06

Dateien nach Typ begrenzen

Das Festlegen von Einschränkungen für die Dateitypen, die auf Ihre Site hochgeladen werden können, und das Blockieren des Hochladens bestimmter Dateitypen sind beide sinnvoll.

Dieser Code überprüft beispielsweise, ob der Besucher keine PHP-Datei auf Ihre Site hochlädt. Wenn es sich um eine PHP-Datei handelt, erhält der Besucher eine Fehlermeldung und $ ok wird auf 0 gesetzt.

if ($ uploaded_type == „text / php“)
{
echo „Keine PHP-Dateien
„;
$ ok=0;
}}

In diesem zweiten Beispiel dürfen nur GIF-Dateien auf die Site hochgeladen werden, und allen anderen Typen wird ein Fehler angezeigt, bevor $ ok auf 0 gesetzt wird.

if (! ($ uploaded_type == „image / gif“)) {
echo „Sie dürfen nur GIF-Dateien hochladen.
„;
$ ok=0;
}}

Mit diesen beiden Beispielen können Sie bestimmte Dateitypen zulassen oder ablehnen.

05 von 06

Alles zusammenfügen

Wenn Sie alles zusammenfügen, erhalten Sie Folgendes:

 $ target=“upload /“;
$ target=$ target. Basisname ($ _FILES [‚hochgeladen‘] [‚Name‘]);
$ ok=1;
// Dies ist unsere Größenbedingung,
wenn ($ uploaded_size> 350000)
{
echo „Ihre Datei ist zu groß.
„;
$ ok=0;
}
// Dies ist unsere Bedingung für den begrenzten Dateityp,
wenn ($ uploaded_type == „text / php“)
{
echo „No PHP files
„;
$ ok=0;
}
// Hier überprüfen wir, ob $ ok nicht durch einen Fehler auf 0 gesetzt wurde,
wenn ($ ok == 0)
{
Echo „Entschuldigung, Ihre Datei wurde nicht hochgeladen“;
}
// Wenn alles in Ordnung ist versuchen wir es laden
sonst
{
if (move_uploaded_file ($ _ FILES [ ‚hochgeladen‘] [ ‚tmp_name‘], $ target))
{
echo „Die Datei“. Basisname ($ _FILES [‚uploadedfile‘] [’name‘]). „wurde hochgeladen“;
}
else
{
echo „Es ist ein Problem beim Hochladen Ihrer Datei aufgetreten.“;
}
}
?>

Bevor Sie diesen Code zu Ihrer Website hinzufügen, müssen Sie die auf dem nächsten Bildschirm beschriebenen Auswirkungen auf die Sicherheit kennen.

06 von 06

Letzte Gedanken zur Sicherheit

Wenn Sie das Hochladen von Dateien zulassen, sind Sie offen für Personen, die unerwünschte Dinge entladen möchten. Eine kluge Vorsichtsmaßnahme besteht darin, das Hochladen von PHP-, HTML- oder CGI-Dateien, die schädlichen Code enthalten könnten, nicht zuzulassen. Dies bietet etwas Sicherheit, ist jedoch kein sicherer Brandschutz.

Eine weitere Vorsichtsmaßnahme besteht darin, den Upload-Ordner privat zu machen, damit nur Sie ihn sehen können. Wenn Sie dann den Upload sehen, können Sie ihn genehmigen – und verschieben – oder entfernen. Je nachdem, wie viele Dateien Sie voraussichtlich erhalten, kann dies zeitaufwändig und unpraktisch sein.

Dieses Skript wird wahrscheinlich am besten in einem privaten Ordner aufbewahrt. Stellen Sie es nicht an einem Ort auf, an dem die Öffentlichkeit es verwenden kann, da Sie sonst möglicherweise einen Server mit nutzlosen oder potenziell gefährlichen Dateien haben. Wenn Sie wirklich möchten, dass die Öffentlichkeit auf Ihren Serverplatz hochladen kann, schreiben Sie so viel Sicherheit wie möglich .

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.