Aide upload de fichier PHP
Résolu/Fermé
Loola
-
29 mai 2008 à 10:00
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 6 juin 2008 à 11:20
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 6 juin 2008 à 11:20
A voir également:
- Aide upload de fichier PHP
- Fichier rar - Guide
- Fichier host - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir fichier .bin - Guide
22 réponses
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
29 mai 2008 à 10:32
29 mai 2008 à 10:32
Salut,
L'erreur vient du fait que t'as piqué des bout de codes de différents sites, et ils n'ont pas les mêmes noms de variable ...
Tu dois remplacer
Il ne faut pas oublier que "photo" est le nom du champ de type FILE qui se trouve dans ton formulaire d'upload (comme est un tableau, il doit en réalité s'appeler photo[] ...)
@Bientôt
L'erreur vient du fait que t'as piqué des bout de codes de différents sites, et ils n'ont pas les mêmes noms de variable ...
Tu dois remplacer
$_FILES['avatar']['tmp_name'], $dossier . $fichier)par
$_FILES['photo']['tmp_name'], $dossier . $fichier)
Il ne faut pas oublier que "photo" est le nom du champ de type FILE qui se trouve dans ton formulaire d'upload (comme est un tableau, il doit en réalité s'appeler photo[] ...)
@Bientôt
Merci pour ta réponse, mais ça ne marche quand meme pas .. :s
Je débute en php et la je suis face à un vrai problème ... :s
Peux tu m'aider stp?
Je débute en php et la je suis face à un vrai problème ... :s
Peux tu m'aider stp?
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
30 mai 2008 à 13:23
30 mai 2008 à 13:23
Est-ce que tu pourrais me copier tout le script, avec la page du formulaire ?
Voici le formulaire:
<form name="frm_1" method="POST" ENCTYPE="multipart/form-data" action="trait.php">
<table class="tab">
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Année:</td><td><input type="text" name="Annee"></td>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Vainqueur:</td><td><input type="text" name="Vainqueur"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Pays du vainqueur:</td><td><input type="text" name="PaysV"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Finaliste:</td><td><input type="text" name="Finaliste"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Pays du finaliste:</td><td><input type="text" name="PaysF"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Sexe:</td><td>Garçon:<input type="radio" name="Sexe" value="M"></td><td>Fille:<input type="radio" name="Sexe" value="F"></td>
<tr><td>   </td><td>   </td></tr>
<tr><td> Photo: </td><td> <input type="file" name="photo"></td></tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td><input type="submit" name="upload" value="Valider"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<input type="hidden" name="choix" value="1">
</table>
</form>
Et voici le traitement php sur l'autre page:
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['photo']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['photo']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['photo']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //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 !';
}
}
else
{
echo $erreur;
}
?>
Et j'en ai trouvé un autre sur un site que j'essai aussi dis moi lequel tu pense que ce soit le mieux:
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'upload/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['photo']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
echo "1";
}
// on vérifie maintenant l'extension
$type_file = $_FILES['photo']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
exit("Le fichier n'est pas une image");
echo "2";
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['photo']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
echo "3";
}
echo "Le fichier a bien été uploadé";
}
?>
J'attends ac impatience vos réponses!
<form name="frm_1" method="POST" ENCTYPE="multipart/form-data" action="trait.php">
<table class="tab">
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Année:</td><td><input type="text" name="Annee"></td>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Vainqueur:</td><td><input type="text" name="Vainqueur"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Pays du vainqueur:</td><td><input type="text" name="PaysV"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Finaliste:</td><td><input type="text" name="Finaliste"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Pays du finaliste:</td><td><input type="text" name="PaysF"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td>Sexe:</td><td>Garçon:<input type="radio" name="Sexe" value="M"></td><td>Fille:<input type="radio" name="Sexe" value="F"></td>
<tr><td>   </td><td>   </td></tr>
<tr><td> Photo: </td><td> <input type="file" name="photo"></td></tr>
<tr><td>   </td><td>   </td></tr>
<tr>
<td><input type="submit" name="upload" value="Valider"></td>
</tr>
<tr><td>   </td><td>   </td></tr>
<input type="hidden" name="choix" value="1">
</table>
</form>
Et voici le traitement php sur l'autre page:
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['photo']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['photo']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['photo']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //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 !';
}
}
else
{
echo $erreur;
}
?>
Et j'en ai trouvé un autre sur un site que j'essai aussi dis moi lequel tu pense que ce soit le mieux:
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
$content_dir = 'upload/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['photo']['tmp_name'];
if( !is_uploaded_file($tmp_file) )
{
exit("Le fichier est introuvable");
echo "1";
}
// on vérifie maintenant l'extension
$type_file = $_FILES['photo']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
exit("Le fichier n'est pas une image");
echo "2";
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['photo']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
echo "3";
}
echo "Le fichier a bien été uploadé";
}
?>
J'attends ac impatience vos réponses!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
30 mai 2008 à 19:18
30 mai 2008 à 19:18
Ok, merci, je vias voir ça ....
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
30 mai 2008 à 20:47
30 mai 2008 à 20:47
C'est bisard ... les deux scripts vont parfaitement chez moi ...
T'as quoi exactement comme erreur ? Une de la part de PHP ou une que t'as créer toi-même ?
Personnellement, je préfère le deuxième (composition du code), mais c'est perso ... le résultat sera le même ...
T'as quoi exactement comme erreur ? Une de la part de PHP ou une que t'as créer toi-même ?
Personnellement, je préfère le deuxième (composition du code), mais c'est perso ... le résultat sera le même ...
Pour l'instant je met mon site en place sous Wamp et il me renvoie cette erreur:
Warning: move_uploaded_file(upload/Fond.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\Stage\test.php on line 27
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php2B.tmp' to 'upload/Fond.JPG' in C:\wamp\www\Stage\test.php on line 27
Impossible de copier le fichier dans upload/
Je comprends pas trop si sa vient de Wamp ou de mon code :s
Warning: move_uploaded_file(upload/Fond.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\Stage\test.php on line 27
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php2B.tmp' to 'upload/Fond.JPG' in C:\wamp\www\Stage\test.php on line 27
Impossible de copier le fichier dans upload/
Je comprends pas trop si sa vient de Wamp ou de mon code :s
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
2 juin 2008 à 12:27
2 juin 2008 à 12:27
J'ai la même erreur seulement si je met un dossier de destination qui n'existe pas ...
Est-ce qu'il existe ? Si oui, est-t-il libre en écriture ?
Est-ce qu'il existe ? Si oui, est-t-il libre en écriture ?
ha non c'est peut etre parce qu'il n'existe pas. Je vais le créer et essayer et je te reponds après!
Merci
Merci
ça marche!!!
Merci beaucoup, je ne pensai pas que sa puisse etre une erreur aussi ridicule ^^
En tout cas merci beaucoup de ton aide!!
Merci beaucoup, je ne pensai pas que sa puisse etre une erreur aussi ridicule ^^
En tout cas merci beaucoup de ton aide!!
J'ai encore un petit problème lié à l'upload.
Je voudrais renommer automaitiquement le fichier uploader par les variables $année et $sexe concaténée.
J'ai donc essayer plusieurs solution, que j'ai cherché sur internet mais je n'y arrive pas, peut importe ce que je fasse, le fichier garde le meme nom ... :s
Peux tu m'aider une derniere fois stp?
Je voudrais renommer automaitiquement le fichier uploader par les variables $année et $sexe concaténée.
J'ai donc essayer plusieurs solution, que j'ai cherché sur internet mais je n'y arrive pas, peut importe ce que je fasse, le fichier garde le meme nom ... :s
Peux tu m'aider une derniere fois stp?
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
2 juin 2008 à 18:16
2 juin 2008 à 18:16
Mais c'est tout normal que je partage mes connaissances ... ;D
Pour le renommage, t'as essayé la fonction rename ?
Pour le renommage, t'as essayé la fonction rename ?
Merci encore pour ces info, ça marche niquel!
Maintenant si tu pouvais m'aider pour la suppression de fichier sur un ftp, sa seré super sympa ^^
Merci encore
Maintenant si tu pouvais m'aider pour la suppression de fichier sur un ftp, sa seré super sympa ^^
Merci encore
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
4 juin 2008 à 11:47
4 juin 2008 à 11:47
T'as la fonction ftp_delete qui te fait ça : manuel ici.
Le probleme c'est que je n'ai pas encore mon serveur, et donc que je ne peux pas ctester cette fonction sous WAMP ou alors je ne sais pas le faire ... :s
J'avais lu un truc sur un forum qui été plutot du genre :
<?php
$Fnm = "/Upload/fichier_à_supprimer.qqchose";
unlink($Fnm);
echo 'fichier supprimé';
?>
Mais malheureusement je n'arrive pas à faire fonctionner cette fonction :s
J'avais lu un truc sur un forum qui été plutot du genre :
<?php
$Fnm = "/Upload/fichier_à_supprimer.qqchose";
unlink($Fnm);
echo 'fichier supprimé';
?>
Mais malheureusement je n'arrive pas à faire fonctionner cette fonction :s
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
4 juin 2008 à 19:15
4 juin 2008 à 19:15
Il te donne quoi comme erreur ?
T'es sur que t'as tous les droits sur le ficher ?
T'es sur que t'as tous les droits sur le ficher ?
Sa me met ça comme erreur :
Warning: unlink(/Upload/icone.jpg) [function.unlink]: No such file or directory in C:\wamp\www\Stage\test.php on line 5
fichier supprimé
Je pense avoir tous les droits sur le fichier, puisque je suis en local, en admin, et que le fichier, s'en est un que j'ai mis grace au formulaire de "upload"
Warning: unlink(/Upload/icone.jpg) [function.unlink]: No such file or directory in C:\wamp\www\Stage\test.php on line 5
fichier supprimé
Je pense avoir tous les droits sur le fichier, puisque je suis en local, en admin, et que le fichier, s'en est un que j'ai mis grace au formulaire de "upload"
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
6 juin 2008 à 10:44
6 juin 2008 à 10:44
Il faut faire attention à un truc ... Apache est sensible à la casse, c'est à dire aux majuscules et aux minuscules.
Avant, dans ton script, t'as mis "upload", et là t'as mis "Upload".
Encore un petit truc, au lieu de mettre
Le . sert à lui dire que tu parts depuis le dossier où est exécuté le script.
Avant, dans ton script, t'as mis "upload", et là t'as mis "Upload".
Encore un petit truc, au lieu de mettre
$Fnm = "/Upload/fichier_à_supprimer.qqchose";<code>, mets plutôt <code>$Fnm = "./Upload/fichier_à_supprimer.qqchose";
Le . sert à lui dire que tu parts depuis le dossier où est exécuté le script.
vlmath
Messages postés
794
Date d'inscription
vendredi 20 octobre 2006
Statut
Contributeur
Dernière intervention
4 septembre 2011
160
6 juin 2008 à 11:18
6 juin 2008 à 11:18
Pour certains systèmes, tel que unix, il y a une grande différence. Pour Wamp, je ne sais pas s'il accepte sans, mais c'est plus propre de faire avec.