Avec PHP, il est facile de télécharger des fichiers sur le serveur.
Cependant, avec la facilité est un danger, il faut donc toujours être prudent lorsque vous permettant le téléchargement de fichiers!
Configurer le "php.ini" Fichier
Tout d'abord, assurez-vous que PHP est configuré pour permettre le téléchargement de fichiers.
Dans votre "php.ini" fichier, recherchez la directive file_uploads, et le mettre sur Activé:
file_uploads = On
Créer le formulaire HTML
Ensuite, créez un formulaire HTML qui permettent aux utilisateurs de choisir le fichier image qu'ils veulent télécharger:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post"
enctype="multipart/form-data">
Select
image to upload:
<input type="file" name="fileToUpload"
id="fileToUpload">
<input
type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
Quelques règles à suivre pour le formulaire HTML ci-dessus:
- Assurez-vous que le formulaire utilise method = « post »
- Le formulaire doit également following l' attribut: enctype = "multipart / form-data". Il précise que le type de contenu à utiliser lors de l'envoi du formulaire
Sans les exigences ci-dessus, le téléchargement de fichiers ne fonctionnera pas.
Autres choses à noter:
- Le type="file" attribut de la <input> balise indique le champ de saisie comme un contrôle de fichiers sélectionnez, avec un "Browse" bouton à côté du contrôle d'entrée
Le formulaire envoie ci - dessus données dans un fichier appelé "upload.php" , que nous créons.
Créer le téléchargement de fichiers PHP Script
Le "upload.php" fichier contient le code pour télécharger un fichier:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType =
pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a
actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo
"File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
?>
PHP script expliqué:
- $ target_dir = "uploads/" - indique le répertoire dans lequel le fichier va être placé
- target_file de $ spécifie le chemin du fichier à télécharger
- $ uploadOk = 1 est pas encore utilisé (will be used later)
- $ ImageFileType détient l'extension de fichier du fichier
- Ensuite, vérifiez si le fichier d'image est une image réelle ou une fausse image
Remarque: Vous devrez créer un nouveau répertoire appelé "uploads" dans le répertoire où "upload.php" fichier se trouve. Les fichiers téléchargés seront enregistrés il.
Vérifiez si le fichier déjà EXISTE
Maintenant, nous pouvons ajouter quelques restrictions.
Tout d' abord, nous allons vérifier si le fichier existe déjà dans le "uploads" dossier. Dans le cas contraire, un message d'erreur est affiché et $ uploadOk est réglé sur 0:
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
Limiter la taille du fichier
Le champ d'entrée de fichier dans notre formulaire HTML ci - dessus est nommé "fileToUpload" .
Maintenant, nous voulons vérifier la taille du fichier. Si le fichier est plus grand que 500kb, un message d'erreur est affiché et $ uploadOk est réglé sur 0:
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
Limite Type de fichier
Le code ci-dessous ne permet aux utilisateurs de télécharger JPG, JPEG, PNG, GIF et fichiers. Tous les autres types de fichiers donne un message d'erreur avant de $ uploadOk à 0:
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType
!= "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
Télécharger fichier complet PHP Script
Le complet "upload.php" fichier ressemble maintenant à ceci:
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType =
pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a
actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo
"File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already
exists
if (file_exists($target_file)) {
echo
"Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType
!= "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if
($uploadOk == 0) {
echo "Sorry, your file was not
uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been
uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
Remplissez PHP Référence Filesystem
Pour une référence complète des fonctions du système de fichiers, consultez notre complet PHP Référence Filesystem .