IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème d'upload dans une classe


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 55
    Points : 49
    Points
    49
    Par défaut Problème d'upload dans une classe
    Salut à tous,

    Je dois faire une fonction dans une classe en php pour uploader un fichier pdf.
    Pour uploader un fichier je sais faire, mais c'est une première pour moi de le faire dans une classe (et même dans une fonction je crois).
    Et forcément l'upload ne se fait pas !
    J'ai vérifié les droits du dossier de destination, tout est ok, j'ai bien mis
    enctype="multipart/form-data"
    dans les attributs du formulaire... La fonction move_uploaded_file renvoie toujours false et je capte pas pourquoi.

    Voici les fonctions de la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    // Upload une facture et retourne son id
        public function set_add_invoice($tmpname,$name,$base_src=''){
            $main=new Main();
            $uploaddir=$base_src.'factures/'; // Dossier de destination
            $uploadfile=$uploaddir.basename($name);
            if ($main->chk_ext('pdf',$uploadfile)){  // Vérifie l'extension du fichier, ça c'est bon
                if (move_uploaded_file($tmpname, $uploadfile)){ // Là ça marche pas
                    $newFile=$uploaddir.$main->set_file_name($uploadfile,$uploaddir); // Là du coup  c'est pas exécuté
                    mysql_query('INSERT INTO factures ('source') VALUES ("'.$newFile.'");') or die ('Erreur lors de l\'enregistrement.'); // ça non plus
                    return mysql_insert_id(); // et ça non plus
                }
                else return $tmpname.'<br>'.$uploadfile;// test, ça retourne /tmp/unNomTemp <br> factures/mon_fichier.pdf
            }
            else return 'b'; //return 0;
        }
     
        // Appel la fonction d'upload par une autre fonction de la même classe
        public function set_new_article(<paramètres>){
            $id_facture=$this->set_add_invoice($_FILES['fichier']['tmp_name'],$_FILES['fichier']['name']);
            return $id_facture;
            <...>
        }

    Voilà depuis lundi ça me prend la tête et je ne vois même pas quoi faire d'autre comme tests...

    Si quelqu'un peut m'aider, merci

  2. #2
    Membre confirmé
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Points : 498
    Points
    498
    Par défaut
    Salut,

    Est-ce que le chemin $uploaddir et $uploadfile te renvoi le bon dossier ?
    essaie simplement avec un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(is_dir($uploaddir)) 
    echo "c'est un repertoire";
    else
    echo "ce n'est pas un repertoire";
    L'erreur c'est souvent ici qu'elle se situe
    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Nowwis Voir le message
    Salut,

    Est-ce que le chemin $uploaddir et $uploadfile te renvoi le bon dossier ?

    L'erreur c'est souvent ici qu'elle se situe
    J'avais déjà testé, mais pour être tout à fait sûr j'ai mis ton code et ça me retourne bien "c'est un repertoire".

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    as tu essayé de visualiser le fichier uploadé en l'affichant en tant que pdf?

    tu as essayer de forcer le niveau de notification d'erreur de ton script avec çà au début de ton script?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error_reporting(E_ALL);
    ini_set("display_errors", 1);

    tu as essayé d'utiliser copy() à la place de move_uploaded_file?
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

Discussions similaires

  1. Problème avec .configure dans une classe
    Par Instanton dans le forum Tkinter
    Réponses: 2
    Dernier message: 29/12/2007, 09h37
  2. [POO] Probléme de syntaxe dans une classe
    Par jewelz dans le forum Langage
    Réponses: 3
    Dernier message: 03/11/2007, 03h57
  3. Problème de setInterval dans une Classe
    Par jeremie74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 21/08/2007, 19h45
  4. Problème Access Violation dans une classe
    Par randriano dans le forum C++Builder
    Réponses: 1
    Dernier message: 11/04/2007, 18h49
  5. problème d'accès dans une classe dérivée!
    Par chrono23 dans le forum C++
    Réponses: 47
    Dernier message: 10/10/2006, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo