par
mctarek » 08 nov. 2010, 23:15
Bonsoir. J'ai besoin de vous pour comprendre pourquoi mon code ne donne pas satisfaction. Tout se déroule comme il faudrait, je vois le fichier temporaire apparaître (F:\Program Files\EasyPHP5.2.10\tmp), puis en déplacement, et aucune trace du fichier dans le dossier définitif /www/download
<?php
// La variable $_FILES de notre formulaire est-elle créée ?
if (isset($_FILES['fichier'])) {
if ($_FILES['fichier']['error'] == 0) {
// les variables
$name=$_FILES['fichier']['name'];
$tmp_name = $_FILES['fichier']['tmp_name']; // faute corrigée!
$uploads_dir = '/download/';
$definitif = $_SERVER['DOCUMENT_ROOT'].$uploads_dir.$name;
// Afficher les informations
echo "en ligne!</br>";
echo "Nom : " . $_FILES['fichier']['name'] . "</br>";
echo "Nom temporaire : " . $_FILES['fichier']['tmp_name']."</br>";
echo "Taille : " . $_FILES['fichier']['size'] . "</br>";
echo "Type : " . $_FILES['fichier']['type'] . "</br>";
echo "dossier download :".$_SERVER['DOCUMENT_ROOT'].$uploads_dir. "</br>";
echo "chemin complet :".$definitif. "</br>";
// Déplacer le fichier temporaire dans un dossier accessible, sous son nom original
move_uploaded_file($tmp_name, $definitif);
// Informer l'utilisateur
echo "le fichier a bien été envoyé!";
}
// Il y a une erreur...
else {
// L'afficher
echo "Erreur : ".$_FILES['fichier']['error']."</br>";
}
}
// $_FILES n'est pas créée, donc aucun fichier n'a été envoyé :
// nous affichons le formulaire d'envoi.
else { ?>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<input type="file" name="fichier" /><br/>
<input type="hidden" name="MAX_FILE_SIZE" value="1024000" />
<input type="submit" value="Transfert !" />
</form>
<?php
}
?>
ce qui donne sur une image :
Nom : 001_Sulawesi_Bunaken_EntreCielEtMer.JPG
Nom temporaire : F:\Program Files\EasyPHP5.2.10\tmp\php424.tmp
Taille : 104478
Type : image/jpeg
dossier download :F:/Program Files/EasyPHP5.2.10/www/download/
chemin complet :F:/Program Files/EasyPHP5.2.10/www/download/001_Sulawesi_Bunaken_EntreCielEtMer.JPG
le fichier a bien été envoyé!
Qu'est ce qui ne va pas ? > faute corrigée, c'est ok!
Bonsoir. J'ai besoin de vous pour comprendre pourquoi mon code ne donne pas satisfaction. Tout se déroule comme il faudrait, je vois le fichier temporaire apparaître (F:\Program Files\EasyPHP5.2.10\tmp), puis en déplacement, et aucune trace du fichier dans le dossier définitif /www/download
[php]<?php
// La variable $_FILES de notre formulaire est-elle créée ?
if (isset($_FILES['fichier'])) {
if ($_FILES['fichier']['error'] == 0) {
// les variables
$name=$_FILES['fichier']['name'];
$tmp_name = $_FILES['fichier']['tmp_name']; // faute corrigée!
$uploads_dir = '/download/';
$definitif = $_SERVER['DOCUMENT_ROOT'].$uploads_dir.$name;
// Afficher les informations
echo "en ligne!</br>";
echo "Nom : " . $_FILES['fichier']['name'] . "</br>";
echo "Nom temporaire : " . $_FILES['fichier']['tmp_name']."</br>";
echo "Taille : " . $_FILES['fichier']['size'] . "</br>";
echo "Type : " . $_FILES['fichier']['type'] . "</br>";
echo "dossier download :".$_SERVER['DOCUMENT_ROOT'].$uploads_dir. "</br>";
echo "chemin complet :".$definitif. "</br>";
// Déplacer le fichier temporaire dans un dossier accessible, sous son nom original
move_uploaded_file($tmp_name, $definitif);
// Informer l'utilisateur
echo "le fichier a bien été envoyé!";
}
// Il y a une erreur...
else {
// L'afficher
echo "Erreur : ".$_FILES['fichier']['error']."</br>";
}
}
// $_FILES n'est pas créée, donc aucun fichier n'a été envoyé :
// nous affichons le formulaire d'envoi.
else { ?>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<input type="file" name="fichier" /><br/>
<input type="hidden" name="MAX_FILE_SIZE" value="1024000" />
<input type="submit" value="Transfert !" />
</form>
<?php
}
?> [/php]
ce qui donne sur une image :
Nom : 001_Sulawesi_Bunaken_EntreCielEtMer.JPG
Nom temporaire : F:\Program Files\EasyPHP5.2.10\tmp\php424.tmp
Taille : 104478
Type : image/jpeg
dossier download :F:/Program Files/EasyPHP5.2.10/www/download/
chemin complet :F:/Program Files/EasyPHP5.2.10/www/download/001_Sulawesi_Bunaken_EntreCielEtMer.JPG
le fichier a bien été envoyé!
Qu'est ce qui ne va pas ? > faute corrigée, c'est ok!