PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 17-09-2010 11:33:50

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

Bonjour à tous,

je bloque depuis hier pour renommer les 4 fichiers envoyé sur le serveur et dans la base.
Pour l'instant, je suis revenu en arriere, je mets le nom directement, mais je préferais avoir la date + 01 02 03 04.jpg

  $addedFiles = array();
  foreach ($_FILES as $name => $file)
  {
         if (is_uploaded_file($file['tmp_name']))
         {
     // renomme le fichier sur le serveur
     copy($file['tmp_name'], "photo/".$file['name']);
    //copy($file['tmp_name'], "photo/${date}-agenda.jpg");
             $addedFiles[$name] = mysql_real_escape_string($file['name']);

         }
      }
      $query = "
         INSERT INTO matable
             (date, ip, pseudo, password, region, dept,
       etablissement, gerant, adresse, postal, ville, tel, port, fax, email, internet,
             prixmin, prixmax, prestation01, prestation02, prestation03, prestation04, description,
       installation01, installation02, installation03, installation04, installation05, installation06, installation07, installation08, installation09, installation10, installation11,
       installation, equipement, service01, service02, service03, service04, service05, service06, service, aFile, aFile2, aFile3, aFile4)

         VALUES
             (NOW(), '$ip', '$pseudo', '$password', '$region', '$dept',
             '$etablissement', '$gerant', '$adresse', '$postal', '$ville', '$tel', '$port', '$fax', '$email', '$internet',
       '$prixmin', '$prixmax', '$prestation01', '$prestation02', '$prestation03', '$prestation04', '$description',
       '$installation01', '$installation02', '$installation03', '$installation04', '$installation05', '$installation06', '$installation07', '$installation08', '$installation09', '$installation10', '$installation11',
             '$installation','$equipement','$service01','$service02','$service03','$service04','$service05','$service06', '$service' ";
       
  $query .= isset($addedFiles['aFile']) ? ", '".$addedFiles['aFile']."'" : ", ''";
  $query .= isset($addedFiles['aFile2']) ? ", '".$addedFiles['aFile2']."'" : ", ''";
  $query .= isset($addedFiles['aFile3']) ? ", '".$addedFiles['aFile3']."'" : ", ''";
  $query .= isset($addedFiles['aFile4']) ? ", '".$addedFiles['aFile4']."'" : ", ''";
      $query .= " )";

Hors ligne

#2 17-09-2010 15:04:21

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

J'avance, tout fonctionne, ou presque. Même si tout fonctionne correctement, j'ai toujours mon message comme quoi je n'ai pas télécharger de fichier sur le serveur ...

Et je ne sais toujours pas comment remplacer le nom du fichier par 01.JPG, 02.jpg etc ...

Sinon, que ce soit dans la base ou le serveur j'ai 100917035849-nomdufichier.jpg

  $addedFiles = array();
  foreach ($_FILES as $name => $file)
  {
         if (is_uploaded_file($file['tmp_name']))
         {
     // renomme le fichier sur le serveur
     copy($file['tmp_name'], "photo/${date}-".$file['name']);
         $addedFiles[$name] = mysql_real_escape_string($file['name']);

         }
      }
      $query = "
         INSERT INTO matable
             (date, ip, pseudo, password, region, dept,
       etablissement, gerant, adresse, postal, ville, tel, port, fax, email, internet,
             prixmin, prixmax, prestation01, prestation02, prestation03, prestation04, description,
       installation01, installation02, installation03, installation04, installation05, installation06, installation07, installation08, installation09, installation10, installation11,
       installation, equipement, service01, service02, service03, service04, service05, service06, service, aFile, aFile2, aFile3, aFile4)

         VALUES
             (NOW(), '$ip', '$pseudo', '$password', '$region', '$dept',
             '$etablissement', '$gerant', '$adresse', '$postal', '$ville', '$tel', '$port', '$fax', '$email', '$internet',
       '$prixmin', '$prixmax', '$prestation01', '$prestation02', '$prestation03', '$prestation04', '$description',
       '$installation01', '$installation02', '$installation03', '$installation04', '$installation05', '$installation06', '$installation07', '$installation08', '$installation09', '$installation10', '$installation11',
             '$installation','$equipement','$service01','$service02','$service03','$service04','$service05','$service06', '$service' ";
//        $query .= isset($addedFiles['aFile']) ? ", '".$addedFiles['aFile']."$date'" : ", ''";
// fonctionne resultat : lx10.jpg100917033104
  $query .= isset($addedFiles['aFile']) ? ", '$date-".$addedFiles['aFile']."'" : ", ''";
  $query .= isset($addedFiles['aFile2']) ? ", '$date-".$addedFiles['aFile2']."'" : ", ''";
  $query .= isset($addedFiles['aFile3']) ? ", '$date-".$addedFiles['aFile3']."'" : ", ''";
  $query .= isset($addedFiles['aFile4']) ? ", '$date-".$addedFiles['aFile4']."'" : ", ''";
      $query .= " )";

  echo "Pas de photos téléchargé !?";


$res = mysql_query($query) or die(mysql_error());

Dernière modification par theavengers (17-09-2010 15:04:50)

Hors ligne

#3 17-09-2010 19:27:42

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

Je ne comprends pas ce qui te bloque, tu mets toi même le commentaire indiquant où est renommé le fichier.
Donc une simple variable qui s'incrémente et tu as ton nom de fichier numérique (1.jpg pour la première itération de boucle et ainsi de suite).

Hors ligne

#4 21-09-2010 09:41:28

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

Ben je bloque complètement dans la comprehension, j'ai tenté un

$addedFiles = array(1,2,3,4);
 foreach ($addedFiles as &$value) {
    $value = $value =1 ;

foreach ($addedFiles as &$value) {
    $value = $value =1 ;

Et ma variable est vide. je vais retenter dans la journée. On sait jamais, j'avais peut être pas la tête à ça ...

Hors ligne

#5 21-09-2010 10:01:35

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

Salut,

En fait, il faut savoir que lorsque tu fais un transfert, tu ne copies pas de fichier, mais au contraire, tu lis le local, et tu écris dans un distant...
Donc il te suffit de changer le nom du fichier local à sa lecture : le fichier distant portera donc le nom modifié wink


$trouvetavar = 'celle qui défini le 1,2,3,4'; // soit tu rajoutes l'extension ici
     copy($file['tmp_name'], "photo/${date}-".$trouvetavar); // soit tu l'as rajoute là
 

Et correction


$value = $value =1 ; // le 2eme = n'a rien à faire là
 

a remplacer par


$value = $value +1 ; // le + par contre, c'est mieux ^^
 

P.S : j'ai précisé le code php dans tes balises : avec la couleur, c'est plus clair wink


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#6 21-09-2010 13:00:43

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

Merci beaucoup, j'essai de comprendre (merci les commentaires) et je teste big_smile

Hors ligne

#7 21-09-2010 13:36:15

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

Oki, donc, si j'ai bien compris, en premier .


    $addedFiles = array();
  $trouvetavar = '1'; //  c'est la variable qui va me permettre de rajouter le numéro qui va s'incrémenter, donc la ça commence avec 1.

$value = $value +1 ; // je rajoute un à chaque fois
 


Désolé, j'y vais petit à petit ... comme je ne fait pas souvent de PHP, je perds à chaque fois mes bases...
Bon je teste

Hors ligne

#8 21-09-2010 14:24:49

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

en fait, il faut que tu testes....
si 1 existe déjà, alors tu fais 1 + 1...
si 2 existe déjà, alors tu fais 2 + 1...

C'est le principe de ta boucle...


/* je passe sur la mise en place de la boucle */
if (isset($id)) {$id = $id+1;} else {$id = 1;} /* tu tentes de récupérer ta var : Si 1ere fois, il l'initialise à 1, sinon, il récupère l'ancienne et rajoute 1  puis tu intègres l'id dans le nom de la photo */
copy($file['tmp_name'], "photo/${date}-".$id.".jpg");
/* fin de ta boucle */
 

P.S : a quoi te sert "$addedFiles = array();" ??? ca sert a rien pour un tableau 4 valeurs de 1 à 4


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#9 23-09-2010 11:47:18

theavengers
Membre
Inscription : 13-10-2009
Messages : 81

Re : Renommer les fichiers différements à l'envoi d'un formulaire 4upload .

Hello, je te réponds dès que possible, je n'ai pas encore fait tout les test que je voulais. Je teste ta méthode et une autre que l'on ma recommandé (Tirkyth si tu te reconnais ^^ )

Hors ligne

Pied de page des forums