Problème d'upload dans une classe php

Fermé
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 14 mars 2012 à 11:47
Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 - 14 mars 2012 à 20:18
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 :

// 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

A voir également:

1 réponse

Autumn`Tears Messages postés 1054 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 23 octobre 2013 145
14 mars 2012 à 20:18
Salut,

Est-ce qu'il y a les droits en écriture ?
0