Latest web development tutorials
×

PHP Kurs

PHP Kurs PHP Kurze Einführung PHP installieren PHP Grammatik PHP Variable PHP echo/print PHP Datentypen PHP Konstante PHP Schnur PHP Die Betreiber PHP If...Else PHP Switch PHP Feld PHP Sortieren eines Array PHP Superglobals PHP While Verkehr PHP For Verkehr PHP Funktion PHP Magische Variablen PHP Namespaces PHP Objektorientiert

PHP Form

PHP Form PHP Formularauthentifizierung PHP Form - Erforderliche Felder PHP Form - Überprüfung E-Mail und URL PHP Komplette Formularinstanz PHP $_GET Variable PHP $_POST Variable

PHP Erweiterte Tutorial

PHP Mehrdimensionale Arrays PHP Datum PHP enthalten PHP Datei PHP Datei-Upload PHP Cookie PHP Session PHP E-mail PHP Sicherheit E-mail PHP Error PHP Exception PHP Filter PHP Erweiterte Filter PHP JSON

PHP 7 Neue Funktionen

PHP 7 Neue Funktionen

PHP Datenbank

PHP MySQL Kurze Einführung PHP MySQL Verbindung PHP MySQL Erstellen einer Datenbank PHP MySQL Erstellen Sie eine Datentabelle PHP MySQL einfügen von Daten PHP MySQL Legen Sie mehrere Daten PHP MySQL Prepared Statements PHP MySQL Lesen Sie Daten PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX Kurze Einführung AJAX PHP AJAX Datenbank AJAX XML AJAX Echtzeitsuche AJAX RSS Reader AJAX Abstimmung

PHP Referenzhandbuch

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Bildverarbeitung PHP RESTful

PHP File Upload

Mit PHP können Sie Dateien auf den Server hochladen.

Beispiele in diesem Abschnitt unter Testprojekt abgeschlossen ist, wird die Verzeichnisstruktur:

test
|-----upload             # 文件上传的目录
|-----form.html          # 表单文件
|-----upload_file.php    # php 上传代码

Erstellen Sie eine Datei-Upload-Formular

Ermöglicht es Benutzern, Dateien hochladen von einem Formular nützlich ist.

Betrachten Sie die folgende HTML-Formular-Dateien für das Hochladen:

<html>
<head>
<meta charset="utf-8">
<title>本教程(w3big.com)</title>
</head>
<body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">
	<label for="file">文件名:</label>
	<input type="file" name="file" id="file"><br>
	<input type="submit" name="submit" value="提交">
</form>

</body>
</html>

Speichern Sie die oben genannten Code-Datei form.html.

Einige Elemente der obigen HTML-Formular verwandt sind im Folgenden aufgelistet:

  • <Form> -Tag enctypeAttribut gibt den Inhalt , wenn ein Formular abgeschickt werden, welche Art zu verwenden. Wenn Form von Binärdaten, wie Dateiinhalt erfordert, verwenden Sie die"multipart / form-data".
  • <Input> -Tag type = "file"Attribut gibt die Eingabe als Dateien behandelt werden sollen. Zum Beispiel, wenn Sie in einem Browser anzeigen, werden Sie neben dem Eingabefeld verfügt über eine Schaltfläche Durchsuchen zu sehen.

Hinweis: Benutzern erlauben , Dateien zu laden ist ein enormes Sicherheitsrisiko.Bitte erlaubt nur vertrauenswürdigen Benutzern das Hochladen von Dateien auszuführen.


Erstellen Sie Upload-Skript

"Upload_file.php" Datei enthält den Code für das Hochladen von Dateien:

<?php
if ($_FILES["file"]["error"] > 0)
{
	echo "错误:" . $_FILES["file"]["error"] . "<br>";
}
else
{
	echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
	echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
	echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
	echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
}
?>

Durch die Verwendung von PHP globalen Arrays $ _FILES, können Sie Dateien auf einem Remote-Server vom Client-Computer laden.

Der erste Parameter ist der Formular-Eingabename, kann der zweite Index ein "name", "Typ" sein, "Größe", "tmp_name" oder "Fehler". Wie folgt:

  • $ _FILES [ "Datei"] [ "name"] - der Name der hochgeladenen Datei
  • $ _FILES [ "Datei"] [ "type"] - Hochladen von Dateitypen
  • $ _FILES [ "Datei"] [ "Größe"] - Upload Dateigröße in Byte
  • $ _FILES [ "Datei"] [ "tmp_name"] - eine temporäre Kopie wird in der Datei Servernamen gespeichert
  • $ _FILES [ "Datei"] [ "Fehler"] - der Fehlercode aus der Datei-Upload

Dies ist eine sehr einfache Datei-Uploads. Basierend auf den Sicherheitsüberlegungen sollten Sie die Einschränkungen erhöhen, auf denen Benutzer können Dateien hochladen.


Upload-Limit

In diesem Skript haben wir in die Datei-Upload-Limit hinzugefügt. Benutzer können nur laden GIF, JPEG, JPG, PNG-Datei muss die Dateigröße kleiner als 200 kB:

<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);        // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)    // 小于 200 kb
&& in_array($extension, $allowedExts))
{
	if ($_FILES["file"]["error"] > 0)
	{
		echo "错误:: " . $_FILES["file"]["error"] . "<br>";
	}
	else
	{
		echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
		echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
		echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
		echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
	}
}
else
{
	echo "非法的文件格式";
}
?>


Speichern Sie die Datei hochgeladen werden

Das obige Beispiel ist eine temporäre Kopie der hochgeladenen Datei in einer temporären Datei-Server PHP Ordner zu erstellen.

Die temporäre Kopie der Datei wird am Ende des Skripts verschwinden. Um eine Datei zu speichern hochgeladen wird, müssen wir sie an einen anderen Ort zu kopieren:

<?php
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
echo $_FILES["file"]["size"];
$extension = end($temp);     // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800)   // 小于 200 kb
&& in_array($extension, $allowedExts))
{
	if ($_FILES["file"]["error"] > 0)
	{
		echo "错误:: " . $_FILES["file"]["error"] . "<br>";
	}
	else
	{
		echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
		echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
		echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
		echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";
		
		// 判断当期目录下的 upload 目录是否存在该文件
		// 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
		if (file_exists("upload/" . $_FILES["file"]["name"]))
		{
			echo $_FILES["file"]["name"] . " 文件已经存在。 ";
		}
		else
		{
			// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
			move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
			echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
		}
	}
}
else
{
	echo "非法的文件格式";
}
?>

Das obige Skript erkennt, ob die Datei bereits vorhanden ist, wenn nicht, stellen Sie die Dateien in ein Verzeichnis kopiert werden als "Upload" von.

Demo Upload einer Datei ist wie folgt: