Latest web development tutorials
×

PHP cours

PHP cours PHP Brève introduction PHP installer PHP grammaire PHP variable PHP echo/print PHP Types de données PHP constante PHP chaîne PHP opérateurs PHP If...Else PHP Switch PHP tableau PHP Tri d'un tableau PHP Superglobales PHP While circulation PHP For circulation PHP fonction PHP Variables magiques PHP Namespaces PHP Object-Oriented

PHP forme

PHP forme PHP Authentification Forms PHP forme - Les champs obligatoires PHP forme - email de vérification et d'URL PHP Complète instance de formulaire PHP $_GET variable PHP $_POST variable

PHP Tutorial avancée

PHP Les tableaux multidimensionnels PHP date PHP contenir PHP fichier PHP File Upload PHP Cookie PHP Session PHP E-mail PHP sécurité E-mail PHP Error PHP Exception PHP filtre PHP filtre avancé PHP JSON

PHP 7 Nouvelles fonctionnalités

PHP 7 Nouvelles fonctionnalités

PHP Base de données

PHP MySQL Brève introduction PHP MySQL raccordement PHP MySQL La création d'une base de données PHP MySQL Créer une table de données PHP MySQL Insérer des données PHP MySQL Insérez des données multiples PHP MySQL Déclarations préparées PHP MySQL Lire les données 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 Brève introduction AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en temps réel AJAX RSS Reader AJAX vote

PHP Manuel de référence

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 Traitement de l'image PHP RESTful

File PHP Upload

En PHP, vous pouvez télécharger des fichiers sur le serveur.

Des exemples de cette section au titre du projet d'essai est terminée, la structure de répertoire:

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

Créer un formulaire de téléchargement de fichiers

Permet aux utilisateurs de télécharger des fichiers à partir d'un formulaire est utile.

Considérez le formulaire HTML suivant pour télécharger des fichiers:

<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>

Enregistrez le code ci-dessus pour form.html fichier.

Quelques éléments liés à la forme HTML ci-dessus sont énumérés ci-dessous:

  • <Form> attribut tag enctypeprécise le contenu lors de la soumission d' un formulaire type à utiliser. Lorsque la forme nécessite des données binaires, tels que le contenu du fichier, utilisez le"multipart / form-data".
  • <Input> typede tag= "file"attribut spécifie l'entrée doit être traitée en tant que fichiers. Par exemple, lors de la prévisualisation dans un navigateur, vous verrez à côté de la zone de saisie a un bouton Parcourir.

Remarque: Permettre aux utilisateurs de télécharger des fichiers est un énorme risque de sécurité.S'il vous plaît ne permet aux utilisateurs de confiance pour effectuer des téléchargements de fichiers.


Créer un script d'upload

"Upload_file.php" fichier contient le code pour le téléchargement de fichiers:

<?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"];
}
?>

En utilisant PHP réseaux mondiaux $ _FILES, vous pouvez télécharger des fichiers sur un serveur distant à partir de l'ordinateur client.

Le premier paramètre est le nom d'entrée de forme, le second indice peut être un "nom", "type", "taille", "tmp_name" ou "erreur". Comme suit:

  • $ _FILES [ "Fichier"] [ "nom"] - le nom du fichier téléchargé
  • $ _FILES [ "File"] [ "type"] - types de fichiers Télécharger
  • $ _FILES [ "Fichier"] [ "taille"] - la taille du fichier de téléchargement en octets
  • $ _FILES [ "Fichier"] [ "tmp_name"] - une copie temporaire est stocké dans le nom du serveur de fichiers
  • $ _FILES [ "Fichier"] [ "erreur"] - le code d'erreur résultant du téléchargement de fichiers

Ceci est un très simple téléchargement de fichiers. Sur la base de considérations de sécurité, vous devez augmenter les restrictions sur lesquels les utilisateurs sont autorisés à télécharger des fichiers.


Ajouter limite

Dans ce script, nous avons ajouté à la limite de téléchargement de fichier. Les utilisateurs ne peuvent télécharger .gif, .jpeg, .jpg, .png, la taille du fichier doit être inférieure à 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 "非法的文件格式";
}
?>


Enregistrez le fichier à télécharger

L'exemple ci-dessus est de créer une copie temporaire du fichier téléchargé dans un dossier de PHP serveur de fichier temporaire.

La copie temporaire du fichier disparaît à la fin du script. Pour enregistrer un fichier est téléchargé, nous avons besoin de le copier vers un autre emplacement:

<?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 "非法的文件格式";
}
?>

Le script ci-dessus détecte si le fichier existe déjà, sinon, mettre les fichiers sont copiés dans un répertoire appelé "transfert" de.

opération de chargement Demo est la suivante: