Les Allergies
Alimentaires
Posez votre question Signaler

[php] upload de fichier [Résolu]

brudao 504Messages postés 10 février 2007Date d'inscription 8 février 2012Dernière intervention - Dernière réponse le 31 juil. 2008 à 18:47
Bonjour,
je n'arrive pas a recupérer un fichier en php.
je vous affiche un bout du code:
<form name="form1" method="post" action="">
<input type="hidden" name="nom"> <input type="File" name="fichier" />
<input type="submit" name="Submit" value="Inserer" /> </form>
<?php
if (isset($_POST['Nom']))
{
$file = $_FILES['fichier']['tmp_name'];
$file_tmp =$file['tmp_name'];
$nomfichier=$_FILES['fichier']['name'];
?>
lorsque j'execute, il me dit undefined vaiable 'fichier';
ce qui est normal mais je n'arrive pas a corriger.
puisque 'fichier' est posté, donc je ne sais pas comment le recuperer correctement
Lire la suite 

[php] upload de fichier »

Suggestions
6 réponses
Réponse
+0
moins plus
Bonjour brudao,

Si le code HTML et le code PHP sont dans le même fichier, je pense qu'il y a un problème.

Le code HTML devrait être quelque-chose du genre:
<form name="form1" method="post" action="traite_fichier.php" enctype="multipart/form-data"> 


<input type="hidden" name="nom"> <input type="File" name="fichier" /> 
<input type="submit" name="Submit" value="Inserer" /> </form>


Puis, mettre le code dans traite_fichier.php (par exemple):
<?php 

if (isset($_POST['Nom'])) 

{ 



$file = $_FILES['fichier']['tmp_name']; 

$file_tmp =$file['tmp_name']; 

$nomfichier=$_FILES['fichier']['name']; 




?>



Cordialement,
el_linwin
brudao- 31 juil. 2008 à 18:23
Merci el_liwin,
c'est ça qui manquait au niveau du form, c'est obligatoire: enctype="multipart/form-data"
donc ça devrait etre:
form name="form1" method="post" action="traite_fichier.php" enctype="multipart/form-data">

mais j'ai un autre probleme encore, lorsque je faire le uploaded, il n'ya pas d'erreur mais je ne vois pas le fichier.

$nomfichier = $_FILES['fichier']['name'];

$dossier = 'Doc/';

$file_tmp =$_FILES['fichier']['tmp_name'];

if(move_uploaded_file($file_tmp, $dossier . $nomfichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}

else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Je te conseilles de bien comprendre comment fonctionne un formulaire en premier, et ensuite tu pourra y mettre un upload de fichier.
Pour ce qui est de trouver des tutoriaux sur la façon de faire un formulaire en PHP, tu en trouvera plein sur google en tapant : formulaire php tutoriel

Bon courage.

EDIT: ne pas prendre en compte ce post puisque déjà répondu entre temps.
Ajouter un commentaire
Réponse
+0
moins plus
Merci el_liwin,
c'est ça qui manquait au niveau du form, c'est obligatoire: enctype="multipart/form-data"
donc ça devrait etre:
form name="form1" method="post" action="traite_fichier.php" enctype="multipart/form-data">

mais j'ai un autre probleme encore, lorsque je faire le uploaded, il n'ya pas d'erreur mais je ne vois pas le fichier.

$nomfichier = $_FILES['fichier']['name'];

$dossier = 'Doc/';

$file_tmp =$_FILES['fichier']['tmp_name'];

if(move_uploaded_file($file_tmp, $dossier . $nomfichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}

else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour brudao,

Attention: $nomfichier (qui a la valeur de $_FILES['fichier']['name']) contient le nom, mais aussi le chemin du fichier sur la machine d'origine (le client donc). C'est pour cela que le fichier est introuvable (double chemin = invalide).

Il faut élaguer la partie chemin de $nomfichier avant de l'utiliser dans: move_uploaded_file($file_tmp, $dossier . $nomfichier)


Cordialement,
el_linwin
Ajouter un commentaire
Réponse
+0
moins plus
Merci el_liwin!
ça marche,
Ajouter un commentaire
Ce document intitulé « [php] upload de fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?