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