Php Upload
Résolu/Fermé
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
-
18 juin 2010 à 12:19
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 21 juin 2010 à 10:00
Breub62 Messages postés 2989 Date d'inscription lundi 7 juin 2010 Statut Membre Dernière intervention 17 avril 2014 - 21 juin 2010 à 10:00
A voir également:
- Php Upload
- Easy php - Télécharger - Divers Web & Internet
- Youtube upload - Télécharger - Diffusion
- Fourtoutici upload ✓ - Forum Réseaux sociaux
- Upload ✓ - Forum Réseaux sociaux
- Php natif - Forum PHP
9 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
18 juin 2010 à 12:44
18 juin 2010 à 12:44
Tu n'aurais pas oublié de mettre « enctype="multipart/form-data" » ?
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
18 juin 2010 à 13:25
18 juin 2010 à 13:25
Non justement j'ai vérifié 100 fois, pas d'espace en trop, pas de problème de ce côté, je comprend pas ce qui cloche
Laugarhraun
Messages postés
14
Date d'inscription
mercredi 16 juin 2010
Statut
Membre
Dernière intervention
10 septembre 2010
44
18 juin 2010 à 13:52
18 juin 2010 à 13:52
Vérifie ces paramètres dans ton php.ini :
file_uploads = On upload_tmp_dir="C:\Windows\Temp" (Ou autre valeur, bien sûr) upload_max_filesize = 11M (Ou autre. Mais il faut que le fichier soit plus petit. De base c'est à 2M je crois)
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
18 juin 2010 à 14:32
18 juin 2010 à 14:32
J'ai réussi à vérifier ces valeur grâce à ini_get()...
file_uploads me renvoie 1
upload_tmp_dir me renvoie D:\Program Files\OCS Inventory NG\xampp\tmp
upload_max_filesize me renvoie 16 M
Donc je me trompe peut-être mais je n'ai pas l'impression qu'il y ait de problème de ce côté là...
file_uploads me renvoie 1
upload_tmp_dir me renvoie D:\Program Files\OCS Inventory NG\xampp\tmp
upload_max_filesize me renvoie 16 M
Donc je me trompe peut-être mais je n'ai pas l'impression qu'il y ait de problème de ce côté là...
Laugarhraun
Messages postés
14
Date d'inscription
mercredi 16 juin 2010
Statut
Membre
Dernière intervention
10 septembre 2010
44
18 juin 2010 à 14:39
18 juin 2010 à 14:39
Ouaip en effet. Bah j'ai aucune idée. On peut avoir le code HTML de la page du formulaire ?
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
18 juin 2010 à 13:56
18 juin 2010 à 13:56
Oui j'ai voulu toucher au php.ini mais malheureusement je ne sais pas comment y accéder car mon wamp est sur un serveur distant...Le phpinfo() me donne le répertoire du php.ini qui est sur le serveur mais dont l'accès m'est restreint... Y a-t-il un moyen de mettre son propre php.ini pour un projet donné??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
18 juin 2010 à 14:04
18 juin 2010 à 14:04
Quel est ton hébergeur ?
On peut modifier les valeurs du php.ini grâce à un .htaccess ou avec ini_set() (ou avec son propre php.ini chez 1&1).
On peut modifier les valeurs du php.ini grâce à un .htaccess ou avec ini_set() (ou avec son propre php.ini chez 1&1).
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
18 juin 2010 à 14:06
18 juin 2010 à 14:06
Je suis sur le réseau intranet d'une entreprise pour laquelle je suis en stage. Je vais chercher plus de détails sur ini_set(). Merci
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
Modifié par Breub62 le 18/06/2010 à 15:50
Modifié par Breub62 le 18/06/2010 à 15:50
Voilà mon form :
Puis le traitement :
Si vous voyez quelque chose qui bloque... Merci de votre aide
echo "<center><form enctype='multipart/form-data' method=post action='index.php?action=ModifierMachine' name='FormAjoutMachine' onSubmit='return check();'><table width = 60%>"; echo "<input type=hidden name=MAX_FILE_SIZE value=2048>"; echo "<input type=hidden name='FormAjoutMachine' value='FormAjoutMachine' />"; echo "<input type=hidden name='numMachine' value='".$dataTrouverMachine['NumMachine']."' />"; echo "<tr ><td width =50%>Nom de machine : </td><td><input type=text name='NomMachine' value='$NomMachine' onKeyUp='couleur(this);' /></td></tr>"; echo "<tr ><td>Date d'achat :</td><td>"; include("calendar.html"); echo "<input onfocus='ds_sh(this);' name='date' readonly='readonly' style='cursor: text' onFocus='couleur(this);' value='".$dataTrouverMachine['DateAchat']."' />"; echo "</td></tr>"; echo "<tr ><td>URL Photo : <em>".$dataTrouverMachine['UrlPhoto']."</em></td><td><input type=file name='URLPhoto' /></td></tr>"; echo "<tr ><td>Modèle : </td><td><input type=text name='ModeleMachine' onKeyUp='couleur(this);' value='".$dataTrouverMachine['Modele']."' /></td></tr>"; echo "<tr ><td>N° de série : </td><td><input type=text name='NumSerie' onKeyUp='couleur(this);' value='".$dataTrouverMachine['NumSerie']."' /></td></tr>"; echo "<tr ><td>N° immo : </td><td><input type=text name='numImmo' onKeyUp='couleur(this);' value='".$dataTrouverMachine['NumImmo']."' /></td></tr>"; echo "</table></form>";
Puis le traitement :
$UrlPhoto = "Images/".date('Ymd').$_SESSION['URLPhoto']['tmp_name']; if(move_uploaded_file($_FILES["URLPhoto"]["tmp_name"], $UrlPhoto)) { $queryModifMachine = "UPDATE machine SET NomMachine='".mysql_real_escape_string($_SESSION['NomMachine'])."', UrlPhoto='".mysql_real_escape_string($UrlPhoto)."', Modele='".mysql_real_escape_string($_SESSION['ModeleMachine'])."', NumSerie='".mysql_real_escape_string($_SESSION['NumSerie'])."', DateAchat='".mysql_real_escape_string($_SESSION['date'])."', DureeGarantie='".mysql_real_escape_string($_SESSION['DureeGarantie'])."', PUHT='".mysql_real_escape_string($_SESSION['PUHT'])."', Processeur='".mysql_real_escape_string($_SESSION['Processeur'])."', RAM='".mysql_real_escape_string($_SESSION['RAM'])."', CarteGraphique='".mysql_real_escape_string($_SESSION['CarteGraphique'])."', DisqueDur='".mysql_real_escape_string($_SESSION['DisqueDur'])."', TechniqueImpression='".mysql_real_escape_string($_SESSION['TechImpr'])."', CouleurNB='".mysql_real_escape_string($_SESSION['CouleurNB'])."', TailleEcran='".mysql_real_escape_string($_SESSION['TailleEcran'])."', NumImmo='".mysql_real_escape_string($_SESSION['numImmo'])."', NumAffectation='".mysql_real_escape_string($_SESSION['NumAffectation'])."', CodeConstructeur='".mysql_real_escape_string($CodeConstructeur)."', CodeFournisseur='".mysql_real_escape_string($_SESSION['CodeFournisseur'])."' WHERE NumMachine='".mysql_real_escape_string($_SESSION['numMachine'])."'"; } else { $queryModifMachine = "UPDATE machine SET NomMachine='".mysql_real_escape_string($_SESSION['NomMachine'])."', Modele='".mysql_real_escape_string($_SESSION['ModeleMachine'])."', NumSerie='".mysql_real_escape_string($_SESSION['NumSerie'])."', DateAchat='".mysql_real_escape_string($_SESSION['date'])."', DureeGarantie='".mysql_real_escape_string($_SESSION['DureeGarantie'])."', PUHT='".mysql_real_escape_string($_SESSION['PUHT'])."', Processeur='".mysql_real_escape_string($_SESSION['Processeur'])."', RAM='".mysql_real_escape_string($_SESSION['RAM'])."', CarteGraphique='".mysql_real_escape_string($_SESSION['CarteGraphique'])."', DisqueDur='".mysql_real_escape_string($_SESSION['DisqueDur'])."', TechniqueImpression='".mysql_real_escape_string($_SESSION['TechImpr'])."', CouleurNB='".mysql_real_escape_string($_SESSION['CouleurNB'])."', TailleEcran='".mysql_real_escape_string($_SESSION['TailleEcran'])."', NumImmo='".mysql_real_escape_string($_SESSION['numImmo'])."', NumAffectation='".mysql_real_escape_string($_SESSION['NumAffectation'])."', CodeConstructeur='".mysql_real_escape_string($CodeConstructeur)."', CodeFournisseur='".mysql_real_escape_string($_SESSION['CodeFournisseur'])."' WHERE NumMachine='".mysql_real_escape_string($_SESSION['numMachine'])."'"; } mysql_query($queryModifMachine) or die(mysql_error());
Si vous voyez quelque chose qui bloque... Merci de votre aide
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
18 juin 2010 à 14:58
18 juin 2010 à 14:58
Salut !
Commente mysql_query et fait un echo de $queryModifMachine pour voir déjà la tête de ta requête.
Commente mysql_query et fait un echo de $queryModifMachine pour voir déjà la tête de ta requête.
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
18 juin 2010 à 15:02
18 juin 2010 à 15:02
En fait c'est un formulaire de modif de machine(pc, imprimante,etc...). Dans le cas où mon fichier s'est bien uploadé, je stocke le nom de fichier, sinon non. Le problème ne venant pas de la requête mais de l'upload qui ne s'éxécutant pas me renvoie dans le else...
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
18 juin 2010 à 15:18
18 juin 2010 à 15:18
bon, d'apres : https://www.php.net/manual/fr/function.move-uploaded-file.php
Si ça fonctionne pas mais que t as pas d'erreur c est le filename qui est invalide (ici ton $_files).
Fais un echo de $UrlPhoto et de $_FILES["URLPhoto"]["tmp_name"] pour voir ce que ça marque.
Si ça fonctionne pas mais que t as pas d'erreur c est le filename qui est invalide (ici ton $_files).
Fais un echo de $UrlPhoto et de $_FILES["URLPhoto"]["tmp_name"] pour voir ce que ça marque.
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
18 juin 2010 à 15:22
18 juin 2010 à 15:22
La réponse est rien. J'ai bien pensé à ça aussi mais le nom de $_FILES['nom'] est bien le même que le <input name='nom' /> ....
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
Modifié par fxtaa le 18/06/2010 à 15:30
Modifié par fxtaa le 18/06/2010 à 15:30
Si ca marque rien ca veut dire que dans ta fonction tu ne passes rien, c'est sur que ca peut pas fonctionner :).
Je sais pas trop ce qu'il te faut dans tes 2 urls de destinations mais pour récupérer une variable envoyé par post pour reprendre ton exemple de nom, ce sera $_POST['nom']
En plus la il manque vachement d'info que tu nous as pas donné, tmp name viens d'où ?
et $_SESSION = quoi ?
ps : et l'echo de $UrlPhoto devrait au moin t'écrire "Images/" non ?
Je sais pas trop ce qu'il te faut dans tes 2 urls de destinations mais pour récupérer une variable envoyé par post pour reprendre ton exemple de nom, ce sera $_POST['nom']
En plus la il manque vachement d'info que tu nous as pas donné, tmp name viens d'où ?
et $_SESSION = quoi ?
ps : et l'echo de $UrlPhoto devrait au moin t'écrire "Images/" non ?
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
18 juin 2010 à 16:19
18 juin 2010 à 16:19
Tiens je t'ai fait un code qui fonctionne pour l'upload de fichier :
A toi de l'adapter ^^
<html> <body> <center> <form ENCTYPE="multipart/form-data" method='POST' action=''> URL de l'image:<br> <input type='file' name='pix'><br> <br> <input type='submit' value='go!'><br> <br> </form> <?php import_request_variables("P","V_"); if(isset($V_pix)) { $tmp = $_FILES['pix']['tmp_name']; $name = 'images/'.$_FILES['pix']['name']; echo "//".$_FILES['pix']['name']."<br>//".$_FILES['pix']['tmp_name']."<br>"; if(move_uploaded_file($tmp, $name ) == 1) { echo "OK !"; } else {echo "KO!";} } ?> </center> </body> </html>
A toi de l'adapter ^^
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
18 juin 2010 à 16:23
18 juin 2010 à 16:23
Merci beaucoup! Est-ce que tu peux me préciser ce que fait
Encore merci
import_request_variables("P","V_");
Encore merci
fxtaa
Messages postés
1050
Date d'inscription
mardi 20 octobre 2009
Statut
Membre
Dernière intervention
2 avril 2015
74
18 juin 2010 à 16:30
18 juin 2010 à 16:30
Ca sert a importer les variables dans l'environnement globale, en fait je sais pas trop, mais si tu le met pas, ca marche pas ^^, donc vaut mieux le laisser XD
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
21 juin 2010 à 09:16
21 juin 2010 à 09:16
Rien à faire en remplaçant dans mon cas j'entre toujours pas dans le if(isset($V_pix))...
Breub62
Messages postés
2989
Date d'inscription
lundi 7 juin 2010
Statut
Membre
Dernière intervention
17 avril 2014
369
21 juin 2010 à 10:00
21 juin 2010 à 10:00
Problème résolu...enfin... il venait de là :
remplacé par :
Ainsi mes variables FILES sont converties en SESSION en même temps que mes POST et je ne perds plus mes infos... Merci pour votre aide
session_start(); if(!empty($_POST)) { foreach($_POST as $cle => $val) { if($cle != 'URLPhoto') // test des post à ne pas convertir en session { $_SESSION[$cle] = $val; unset($_POST[$cle]); } } echo "<script language='javascript'>history.go(-1);</script>"; exit(); } if(!empty($_FILES)) { foreach($_FILES as $cle => $val) { $_SESSION[$cle] = $val; } echo "<script language='javascript'>history.go(-1);</script>"; exit(); }
remplacé par :
session_start(); if(!empty($_POST) || !empty($_FILES)) { foreach($_POST as $cle => $val) { if($cle != 'URLPhoto') // test des post à ne pas convertir en session { $_SESSION[$cle] = $val; unset($_POST[$cle]); } } foreach($_FILES as $cle2 => $val2) { $_SESSION[$cle2] = $val2; } echo "<script language='javascript'>history.go(-1);</script>"; exit(); }
Ainsi mes variables FILES sont converties en SESSION en même temps que mes POST et je ne perds plus mes infos... Merci pour votre aide