Comment Uploader un fichier via un formulaire en PHP ?
gringo75011
Messages postés
3
Statut
Membre
-
totodunet Messages postés 1513 Statut Membre -
totodunet Messages postés 1513 Statut Membre -
Bonjour à tous,
Je poste ce message car je poursuis actuellement le tutoriel sur PHP (celui de mateo sur le site du zero) 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 :
Fichier cible_envoi.php :
Merci d'avance pour votre aide.
Je poste ce message car je poursuis actuellement le tutoriel sur PHP (celui de mateo sur le site du zero) 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 :
<!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 :
<!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.
A voir également:
- Comment Uploader un fichier via un formulaire en PHP ?
- Whatsapp formulaire opposition - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Comment ouvrir un fichier dat - Guide
1 réponse
salut,
$_FILES['fichier']['name'] te donne le nom du fichier, pas besoin de basename à priori.
https://www.php.net/basename
basename prend en paramètre un chemin
$_FILES['fichier']['name'] te donne le nom du fichier, pas besoin de basename à priori.
https://www.php.net/basename
basename prend en paramètre un chemin