[RESOLU] Classe_Upload AB et récuperation du nom de fichier uploader

Mammouth du PHP | 504 Messages

10 avr. 2013, 12:07

Bonjour à tous,

J'utilise la classe de AB Classe_Upload.

tout fonctionne bien sauf que je récupere le nom du fichier télécharger dans ma base.

exemple

nom de fichier= Image 32.png enregistrer dans ma base avec récuperer avec $_FILES['media']['name']

et le nom du fichier téléchargé sur mon serveur est Image32.png

donc, il y a un traitement appliqué sur ce nom de fichier pour le téléchargement, je ne trouve pas comment retrouver le nom du fichier retraité.

Merci de votre aide.

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

10 avr. 2013, 17:13

salut,

la correction du nom de fichier est faite par la classe c'est expliqué dans la description ;) faq-tutoriels/telechargement-fichier-av ... ml#p405331


je pense que la solution est décrite au dernier point (L) de la documentation (lien ci dessus) ;)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 504 Messages

10 avr. 2013, 17:21

Hello Moogli,

Oui, j'ai relu la doc en entier et effectivement, dans la note L, on a

$tab_transfert = $up->Get_Tab_upload();

J'ai fait un print_r et j'obtiens

Un array comme suit

Code : Tout sélectionner

Array ( [identifiant] => ok [champ] => media [resultat] => Array ( [0] => Array ( [fichiers/annonce] => Array ( [nom] => Image30.png [dim] => 1194x656 ) ) ) )
il me reste a recuperer le nom du fichier afin de le mettre en base.

Par contre, je cherche un méthode simple pour acceder au nom parce que je n'ai besoin que de ça autre que le foreach ?

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

10 avr. 2013, 17:44

ben le nom de fichier est accessible simplement
<?php
$tab_transfert = $var->Get_Tab_upload();
$tab_transfert['resultat']['nom']; // nom du fichier sur le disque
$sql = 'insert into latable (nomdufichier) values(\''.$tab_transfert['resultat']['nom'].'\')'; // par exemple
$tab_transfert est un simple tableau :)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 504 Messages

10 avr. 2013, 17:54

re,

bah non, c'est pas un simple tableau.

C'est un emplilement d'array que j'ai du mal à comprendre d'ailleurs. :?

Code : Tout sélectionner

Array ( [identifiant] => ok [champ] => media [resultat] => Array ( [0] => Array ( [fichiers/annonce] => Array ( [nom] => Image30.png [dim] => 1194x656 ) ) ) )

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

10 avr. 2013, 18:53

:mrgreen:

il a trois dimension.

le plus simple c'est l'afficher mis en forme pour bien comprendre le niveau des données

en php tu ferais comme ça
<?php
$tab = Array(
    'identifiant' => 'ok ',
    'champ' => 'media',
    'resultat' => Array(
        0 => Array(
            'fichiers / annonce' => Array(
                'nom' => 'Image30.png', 
                'dim' => '1194x656'
            )
        )
    )
);
tu coup pour accéder au nom du fichier
<?php
$tab['resultat'][0]['fichiers / annonce']['nom'];
?>
resultat c'est immuable
zéro parce que c'est le premier fichier uploadé
'fichiers / annonce' ça je sais pas ce que c'est (j'ai pas regardé) as tu quelque chose comme ça dans ton code ?
nom : immuable c'est la que tu trouve l'info.
dim : immuable c'est al dimension de l'image
au total il y a 4 tableaux imbriqué les uns dans les autres.

poste ton code complet (faut éventuel utilisateur / mot de passe) que l'on puisse y voir un poil mieux :)

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 504 Messages

10 avr. 2013, 18:56

Je crois avoir essayer ton code, je vais ressayer voir si ça marche.

Sinon, je l'avais traiter avec des foreach dont voici le code
foreach ($tab_transfert[resultat] as $cle=>$valeur) {
foreach ($valeur as $cle1=>$valeur1) {
echo $valeur1[nom];
}
}
Comme j'ai plusieurs téléchargements, les foreach, ça m'embette un peu

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

10 avr. 2013, 19:55

Si tu as plusieurs champs tu ne peux pas échapper au foreach si tu souhaite garder une certaine souplesse.


Ensuite tu ne respecte pas la syntaxe php sur les clefs ....


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 504 Messages

11 avr. 2013, 15:19

@ moogli

J'ai pas bien compris la syntaxe php sur les clefs ? ma syntaxte n'est pas bonne ?

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

11 avr. 2013, 22:01

$valeur1[nom]

une chaîne de caractère doit être délimité (un index non numérique c'est une chaîne de caractère) donc $valeur1['nom'] (par exemple)


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 504 Messages

12 avr. 2013, 08:24

Ah oui en effet, petit oubli :) . Merci, bonne journée