Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Datei-Upload

PHP-Datei-Upload

巴扎黑
巴扎黑Original
2016-11-30 09:35:01948Durchsuche

Über PHP können Dateien auf den Server hochgeladen werden.

Erstellen Sie ein Datei-Upload-Formular

Es ist sehr nützlich, Benutzern das Hochladen von Dateien aus einem Formular zu ermöglichen.

Bitte beachten Sie das folgende HTML-Formular zum Hochladen von Dateien:




enctype="multipart/form-data">





< ; /form>



Bitte beachten Sie folgende Informationen zu diesem Formular:

gibt an, dass die Eingabe als Datei verarbeitet werden soll. Wenn Sie beispielsweise eine Vorschau in einem Browser anzeigen, wird neben dem Eingabefeld eine Schaltfläche zum Durchsuchen angezeigt.

Hinweis: Benutzern das Hochladen von Dateien zu erlauben, stellt ein großes Sicherheitsrisiko dar. Bitte erlauben Sie nur vertrauenswürdigen Benutzern, Datei-Upload-Vorgänge durchzuführen.

Erstellen Sie ein Upload-Skript

Die Datei „upload_file.php“ enthält den Code zum Hochladen von Dateien:

if ($_FILES["Datei "] ["error"] > 0)
{
echo "Fehler: " . $_FILES["file"]["error"] . "
";
}
else
{
echo "Upload: " [" file"]["type"] . "
";
echo "Size: " ($_FILES["file"]["size"] / 1024) /> ;";
echo "Gespeichert in: " . $_FILES["file"]["tmp_name"];
}
?>

Durch die Verwendung von PHPs Mit dem globalen Array $_FILES können Sie Dateien vom Client-Computer auf den Remote-Server hochladen.

Der erste Parameter ist der Eingabename des Formulars, und der zweite Index kann „Name“, „Typ“, „Größe“, „tmp_name“ oder „Fehler“ sein. So:

$_FILES["file"]["name"] – der Name der hochgeladenen Datei

$_FILES["file"]["type"] - die hochgeladene Datei Typ

$_FILES["file"]["size"] – Die Größe der hochgeladenen Datei in Bytes

$_FILES["file"]["tmp_name"] – Der Name der temporären Kopie der auf dem Server gespeicherten Datei

$_FILES["file"]["error"] - der durch den Datei-Upload verursachte Fehlercode

Dies ist eine sehr einfache Datei Weg hochladen. Aus Sicherheitsgründen sollten Sie Beschränkungen hinzufügen, wer zum Hochladen von Dateien berechtigt ist.

Upload-Beschränkung

In diesem Skript haben wir eine Beschränkung für Datei-Uploads hinzugefügt. Benutzer können nur .gif- oder .jpeg-Dateien hochladen und die Dateigröße muss weniger als 20 KB betragen:


if ((($_FILES["file"][ "type"] == "image/gif")
||. ($_FILES["file"]["type"] == "image/jpeg")
||. ]["type "] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
{
if ($_FILES[" file"][ "error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "
";
}
else
{
echo "Upload: " _FILES["file"]["type"] "
";
echo "Size: " ($_FILES["file"]["size"] / 1024) . br /> ";
echo "Gespeichert in: " . $_FILES["file"]["tmp_name"];
}
}
else
{
echo " Ungültige Datei";
}

?>


Hinweis: Für IE muss der Typ der erkannten JPG-Datei pjpeg sein, und für FireFox muss es jpeg sein.

Speichern der hochgeladenen Datei

Das obige Beispiel erstellt eine temporäre Kopie der hochgeladenen Datei im temporären PHP-Ordner des Servers.

Diese temporäre Kopie verschwindet, wenn das Skript endet. Um die hochgeladene Datei zu speichern, müssen wir sie an einen anderen Ort kopieren:

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type "] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"][ "size"] < 20000))
 {
 if ($_FILES["file"]["error"] > 0)
   {
   echo "Return Code: " . $_FILES["file"]["error"] . "
";
   }
 else
   {
   echo "Upload: " . $_FILES["file"]["name"] . "
";
   echo "Typ: " . $_FILES["file"]["type"] . "
";
   echo "Size: " . ($_FILES["Datei"]["Größe"] / 1024) . " Kb
";
   echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
";

   if (file_exists("upload/". $_FILES["file"]["name"]))
     {
     echo $_FILES[" Dateiname"] . „ existiert bereits. ]["name"]);
     echo "Gespeichert in: " . "hochladen/" . $_FILES["file"]["name"];
     }
   }
 }
else
 {
 echo "Ungültige Datei";
 }
? >夹.

注释: 这个例子把文件保存到了名为 „hochladen“ 的新文件夹.



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn