Upload via formulaire
nw.nain
Messages postés
48
Statut
Membre
-
Jodu Messages postés 91 Statut Membre -
Jodu Messages postés 91 Statut Membre -
Bonjour,
comme le dit le titre je cherche à faire un formulaire permettant d'envoyer un fichier dans un dossier sur le serveur. Mon architecture est la suivante : il y a un dossier /userfiles à la racine et dedans chaque client a un dossier qui lui est propre qui a pour nom id-nom
le code que j'ai écrit est le suivant :
la redirection se fait bien j'ai donc l id et ttes les infos de mon client
j'ai construit l'adresse de destination du fichier j'essaie donc de le déplacer :
et la rien ne se passe .... le fichier n'est pas mit dans le bon dossier cependant aucune erreur est afficher ! je ne sais pas comment il faut faire, y a t'il une autre méthode ? faut il rajouter qq chose ?
merci d'avance!
Cordialement
comme le dit le titre je cherche à faire un formulaire permettant d'envoyer un fichier dans un dossier sur le serveur. Mon architecture est la suivante : il y a un dossier /userfiles à la racine et dedans chaque client a un dossier qui lui est propre qui a pour nom id-nom
le code que j'ai écrit est le suivant :
<form method="post" action="reception.php?id=<?php echo $id ?>" enctype="multipart/form-data">
<label for="mon_fichier">sélectionner le fichier à envoyer:</label><br />
<input type="file" name="mon_fichier" id="mon_fichier" /><br />
<input type="submit" name="submit" value="Envoyer" />
</form>
la redirection se fait bien j'ai donc l id et ttes les infos de mon client
$connect = mysql_connect(MYHOST, MYUSER, MYPASS) or die ('Identifiants incorrects');
mysql_select_db(MYDB) or die ('Base de données incorrecte');
$result = mysql_query("SELECT nom FROM clients where id='$id'");
if (!$result) {
die('Impossible d\'exécuter la requête :' . mysql_error());
}
$requete=mysql_result($result, 0);
$namefi="$id-$requete";
mysql_close($connexion) ;
$destination ="/userfiles/$namefi";
j'ai construit l'adresse de destination du fichier j'essaie donc de le déplacer :
if ($_FILES['mon_fichier']['error'] > 0) $erreur = "Erreur lors du tranfsert"; $resultat = move_uploaded_file($_FILES['mon_fichier']['tmp_name'],$destination); if ($resultat) echo "Transfert réussi";
et la rien ne se passe .... le fichier n'est pas mit dans le bon dossier cependant aucune erreur est afficher ! je ne sais pas comment il faut faire, y a t'il une autre méthode ? faut il rajouter qq chose ?
merci d'avance!
Cordialement
A voir également:
- Upload via formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Upload video youtube - Télécharger - Diffusion
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss ✓ - Forum Access
5 réponses
Salut,
j'avais eu le même soucis que toi il y a longtemps, aucune erreur d'affichée et rien ne déplaçait...
Pour construire mon script d'upload je m'étais inspiré de 3 sites : commentcamarche, siteduzero, et manuelphp (je crois) et à force de tests, d'echos en tous sens, j'étais arrivé à le rendre fonctionnel.
Il faut que tu essaies de faire des echos pour savoir si tu passes dans tes conditions ou non, afin de repérer là où se fait ton erreur.
Lu comme ça, ton code me semble sans erreurs...
Si ça t'intéresse, je peux te copier mon code.
Bon courage
j'avais eu le même soucis que toi il y a longtemps, aucune erreur d'affichée et rien ne déplaçait...
Pour construire mon script d'upload je m'étais inspiré de 3 sites : commentcamarche, siteduzero, et manuelphp (je crois) et à force de tests, d'echos en tous sens, j'étais arrivé à le rendre fonctionnel.
Il faut que tu essaies de faire des echos pour savoir si tu passes dans tes conditions ou non, afin de repérer là où se fait ton erreur.
Lu comme ça, ton code me semble sans erreurs...
Si ça t'intéresse, je peux te copier mon code.
Bon courage
alors j'ai fait des echo partout il va jusqu'au bout du script sans soucis !
il y a juste
qui fait quelque chose de moche mais sinon aucun soucis !
pour ce qui et de ton code ouai je suis preneur!!! ça aidera surement a trouver la ptite boulette :D je me suis aussi aider des sites : site du zero et ccm c pour ça que je suis étonné que cela ne marche pas
il y a juste
echo "$_FILES['mon_fichier']['tmp_name']";
qui fait quelque chose de moche mais sinon aucun soucis !
pour ce qui et de ton code ouai je suis preneur!!! ça aidera surement a trouver la ptite boulette :D je me suis aussi aider des sites : site du zero et ccm c pour ça que je suis étonné que cela ne marche pas
Re,
voilà le bout de code :
Ici, je ne prend que les png, bien sur tu peux changer les extensions dans ton array ;)
voilà le bout de code :
if (isset($_FILES['image']) and $_FILES['image']['error']==0)
{
$nomimage=$image.".png";
$extension=strrchr($_FILES['image']['name'],'.');
$bonneext=array(".png");
if (in_array($extension,$bonneext))
{
move_uploaded_file($_FILES['image']['tmp_name'],'./images/pizzas/'.$nomimage);
echo "Envoi OK";
}
else
{
echo "Erreur" ;
}
}
Ici, je ne prend que les png, bien sur tu peux changer les extensions dans ton array ;)
bon alors j'ai plusieurs question sur ce script:
1 : dans le form le name de champ = mon_fichier, quand le fichier sera up il gardera son nom d'origine cad
si j'up un fichier appelé wallpaper.png, une foi sur le serv il gardera son nom ou s'appelera mon_fichier.png ?
2 : j'ai trouver une autre fonction :
elle vient du site du zero or je ne comprend pas comment l'utiliser, on part du form , on clic sur le bouton de type submit mais ou appel t'on cette fonction ?
1 : dans le form le name de champ = mon_fichier, quand le fichier sera up il gardera son nom d'origine cad
si j'up un fichier appelé wallpaper.png, une foi sur le serv il gardera son nom ou s'appelera mon_fichier.png ?
2 : j'ai trouver une autre fonction :
<?php
function upload($index,$destination,$maxsize=FALSE,$extensions=FALSE)
{
//Test1: fichier correctement uploadé
if (!isset($_FILES[$index]) OR $_FILES[$index]['error'] > 0) return FALSE;
//Test2: taille limite
if ($maxsize !== FALSE AND $_FILES[$index]['size'] > $maxsize) return FALSE;
//Test3: extension
$ext = substr(strrchr($_FILES[$index]['name'],'.'),1);
if ($extensions !== FALSE AND !in_array($ext,$extensions)) return FALSE;
//Déplacement
return move_uploaded_file($_FILES[$index]['tmp_name'],$destination);
}
//EXEMPLES
$upload1 = upload('icone','uploads/monicone1',15360, array('png','gif','jpg','jpeg') );
$upload2 = upload('mon_fichier','uploads/file112',1048576, FALSE );
if ($upload1) "Upload de l'icone réussi!<br />";
if ($upload2) "Upload du fichier réussi!<br />";
?>
elle vient du site du zero or je ne comprend pas comment l'utiliser, on part du form , on clic sur le bouton de type submit mais ou appel t'on cette fonction ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Test1 : teste si aucune erreur dans l'upload (cf commentcamarche.net pour les erreurs de l'upload,1,2,3,4)
Test2 : Si le fichier est trop gros (plus gros que la taille max que tu lui autorises), on met erreur.
Test3 : test des extensions, si l'extention uploadée ne correspond pas a l'extention présente dans ton tableau (array) d'extensions autorisées, alors on renvoie une erreur.
Si pas d'erreurs, on bouge le fichier des fichiers temporaires sur le repertoire désiré du serveur.
Dans l'exemple, pour $upload1, on transmet des paramètres a la fonction "upload", avec le tableau des extensions autorisées (png, gif...), la taille du fichier (15360), le repertoire de destination (upload/monicone1) et le nom(icone).
Pour $upload2, pareil avec un autre exemple de fichier.
A toi de te servir de la fonction correctement.
Si tu ne maîtrise pas les fonctions, je te conseille de lire des cours. Moi je t'explique ce qu'elle fait.
Pour appeler la fonction on a utilisé le nom de la fonction "upload".
Probablement cette fonction sera enregistrée sur un autre fichier, il faudra donc appeler ce fichier avec un "require" , sinon ta fonction ne sera pas trouvée (logique).
Je te renvoie au siteduzero pour des cours simples
Test1 : teste si aucune erreur dans l'upload (cf commentcamarche.net pour les erreurs de l'upload,1,2,3,4)
Test2 : Si le fichier est trop gros (plus gros que la taille max que tu lui autorises), on met erreur.
Test3 : test des extensions, si l'extention uploadée ne correspond pas a l'extention présente dans ton tableau (array) d'extensions autorisées, alors on renvoie une erreur.
Si pas d'erreurs, on bouge le fichier des fichiers temporaires sur le repertoire désiré du serveur.
Dans l'exemple, pour $upload1, on transmet des paramètres a la fonction "upload", avec le tableau des extensions autorisées (png, gif...), la taille du fichier (15360), le repertoire de destination (upload/monicone1) et le nom(icone).
Pour $upload2, pareil avec un autre exemple de fichier.
A toi de te servir de la fonction correctement.
Si tu ne maîtrise pas les fonctions, je te conseille de lire des cours. Moi je t'explique ce qu'elle fait.
Pour appeler la fonction on a utilisé le nom de la fonction "upload".
Probablement cette fonction sera enregistrée sur un autre fichier, il faudra donc appeler ce fichier avec un "require" , sinon ta fonction ne sera pas trouvée (logique).
Je te renvoie au siteduzero pour des cours simples