Comment uploader des fichiers via formulaire en PHP
Bonjour à tous,
Je poste ce message car je poursuis actuellement un tutoriel sur PHP et je suis sur la partie upload de fichiers via un formulaire; Je fais tout pour le moment en local et mes questions tournent autour du point suivant :
Comment uploader un fichier en PHP à partir du répertoire temporaire vers un répertoire définitif dans mon dossier var/www?
Pour info, je suis sur ubuntu 13.10 virtualisé sous vm player.
Je n'arrive pas à réaliser l'action MAIS je ne vois pas ce qui cloche dans mon code.
Remarque : j'ai créé 2 fichiers dans www :
1er fichier : fichier du formulaire de téléchargement du fichier (une image dans mon cas) appelé envoi.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <!DOCTYPE html>
<html>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css"> .blue {background-color : #00FFFF} </style>
<body>
<form action="cible_envoi.php" method="post" enctype="multipart/form-data">
<div class="blue">Formulaire d'envoi de fichier :</br>
<input type="file" name="monfichier" /><br/>
<input type="submit" value="Envoyer le fichier" />
</div>
</form>
</body>
</html> |
Fichier cible_envoi.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <!DOCTYPE>
<html>
<head>
<title>Test en cours</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) && $_FILES['monfichier']['error'] == 0)
{
//Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 1000000)
{
//Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
//On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['monfichier']['tmp_name'], '/var/www/Tests/uploads/'. basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
else
{
echo "il y'a un problème dans le deuxième if";
}
}
else
{
echo "Il y'a un problème dans le 2 if";
}
}
else
{
echo "Il y'a un bug dans le if initial";
}
?>
</body>
</html> |
Merci d'avance pour votre aide.