upload fichier: passer de 1 a plusieurs fichiers

Eléphant du PHP | 319 Messages

13 nov. 2007, 18:44

bon, apparement ca marcherait MAIS:
- ca n'est pas immediat (si je vais dans le repertoire "gift" je ne vois rien, je dois me deconecter, attendre un peu et me reconnecter)
- je n'arrive pas a telecharger les fichiers que j'ai uploade (j'ai un "critical transfer error" qui s'affiche)

par ailleurs: je dois stocker le chemin et le nom de ces fichiers dans une table (Avec d'autres infos qui sont dans le formulaire). comment est ce que je peux recuperer ca svp?
niveau: pas terrible en php mais je me soigne...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 nov. 2007, 19:59

Toujours pas d'explication puor l'upload, mais pour conserver le nom du dossier et du fichier en base, ça ne devrait pas être bien compliqué. Après tout, c'est toi qui défini le dossier ($uploaddir) et le nom du fichier ($uploadname) ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

13 nov. 2007, 21:03

c'est de la magie ce script...

pour ce qui est du path: aucun probleme ;)
par contre pour ce qui est du nom des fichiers je ne vois pas trop car dans $uploadname j'ai entre 1 et 6 noms en fonctions des fichiers que j'y mets.

ce qui aurait ete pratique: appeller $uploadname['0'], $uploadname['1'] etcetc au moment de l'insertion dans la base de donnees mais utiliser ['0'] n'affiche que la premiere lettre du 1er fichier par exemple.

je dois par contre pouvoir exploser la chaine de caractere apres l'extension, faire une boucle et stocker chacun des noms dans une variable separee.

sincerement: je pense qu'il y a plus simple.

je me trompe?

au fait Ryle: vraiment tres sympa de ta part de passer du temps sur mon cas :)

Invité
Invité n'ayant pas de compte PHPfrance

13 nov. 2007, 21:27

ok: dis moi si je me trompe mais si j'utilise str_split() normalement je dois pouvoir m'en sortir.

ca me permettrait de "decouper" $uploadname en parts egales (45 caracteres a chaque fois dans mon cas) et coller tout ca dans un tableau. une fois que c'est fait: plus de probleme pour stocker dans une table.

correct? :)

on peut trouver mieux?

Invité
Invité n'ayant pas de compte PHPfrance

13 nov. 2007, 21:31

un coup dans l'eau, ca me retourne DES tableaux, bien decoupe tous les 45 caracteres. mais la clef est toujours 0.

pas tres pratique pour l'insertion dans la base de donnees ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 nov. 2007, 10:05

On doit effectivement pouvoir faire mieux... cela dépend un peu de comment tu veux stocker tes données en base ensuite. Est ce que tu as un enregistrement par fichier ? un enregistrement dans lequel tu as 6 champs pour stocker les chemins des fichiers ?

Dans le premier cas, il te suffit d'exécuter l'insertion dans ta boucle après chaque move_upload effectué avec succès (tu insères directement l'enregistrement du fichier que tu viens de traiter).

Dans le second cas tu peux utiliser un tableau dans lequel tu stockeras le nom des fichiers au fur et à mesure et que tu pourras parcourir une fois ta boucle terminée pour les retrouver :
$tabNomFichier = array();
while (...) {
  // ...
  $tabNomFichier[] = $uploadname;
  // ...
}
Tu auras alors $tabNomFichier[0] contenant le nom du premier fichier uploadé, $tabNomFichier[1] le suivant, ... La taille du tableau dépendra du nombre de fichiers uploadés avec succes. A toi de voir s'il ne doit contenir que ces valeurs, ou si tu veux savoir quels sont les "trous" (fichier non ou mal uploadé), suffit dans ce cas d'insérer une valeur vide à la place du $uploadname et de la gérer ensuite si le nom de fichier est vide :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 319 Messages

14 nov. 2007, 11:58

ca marche super!

je m'y prenais comme un manche pour stocker mes infos dans un tableau.
la: ca marche! :)

(je suis dans le 2nd cas: j'ai plusieurs fichiers pour un seul enregistrement)

t'es une star Ryle :)

merci aussi a kaoteknik et aux autres :)
niveau: pas terrible en php mais je me soigne...