Bonjour,
Je suis en train de coder un nouveau module.
Je créé un formulaire permettant d'uploader une image.
Je n'avais encore jamais fait.
Maintenant je comprends pourquoi : c'est gavant !
--------------------------------------------------
1er prob :
Dans mon formulaire le code fonctionne nickel :
$my_form->setExtra( "enctype='multipart/form-data'" ) ; // impératif !
$img_box = new XoopsFormFile(_MI_COTATIONS_AFFICHE, "affiche", 10000000); $img_box->setExtra( "size ='65'") ; // optionnel : pour fixer la longueur de la textbox
$my_form->addElement($img_box);
Dans ma page de destination, j'ai mis le code suivant :
// récupération du nom du fichier d'origine
// on pourrait également utiliser $field = $_POST["xoops_upload_file"][0] ;
$field = $_FILES['affiche']['name'];
// test si le champ a été rempli :
if( !empty( $field ) || $field != "" ) {
// puis test si le fichier a été uploadé dans le répertoire temporaire:
if( $_FILES[$field]['tmp_name'] == "" || ! is_readable( $_FILES[$field]['tmp_name'] ) ) {
// non = l'upload a echoué on retourne au formulaire
redirect_header( 'index.php' , 2, _MD_FILEERROR ) ; exit ; }
// création de l'objet uploader
$uploader = new XoopsMediaUploader($img_dir, $allowed_mimetypes, $max_imgsize, $max_imgwidth, $max_imgheight);
// test si le fichier uploadé est conforme en dimension et taille, et bien copié du répertoire temporaire au répertoire indiqué
if( $uploader->fetchMedia( $field ) && $uploader->upload() ) {
// L'upload a réussi - à adapter bien évidemment
echo 'File uploaded successfully!';
// nom du fichier uploadé
echo 'Saved as: ' . $uploader->getSavedFileName() ;
// chemin complet
echo 'Full path: ' . $uploader->getSavedDestination();
// sinon l''upload a échoué : message d'erreur
} else { echo $uploader->getErrors(); } }
Le fichier ne veut pas s'uploader.
Je suis en local sur linux.
Dernière version xoops, dernière version apache, phpmyadmin, etc.
Je n'ai évidemment pas oublié le :
include_once(XOOPS_ROOT_PATH."/class/uploader.php");
--------------------------------------------------
2è prob :
J'essaie de comprendre où se trouve mon répertoire temporaire sur linux (histoire de déterminer si c'est mon code qui ne fonctionne pas, ou si effectivement mon fichier n'est pas téléchargé).
Or j'ai des infos qui viennent de partout.
1) Quand je mets :
echo $_ENV['TMP'].'
';
il m'affiche /tmp
2) Quand je cherche un php.ini, j'en ai deux.
Un dans : /etc
Un dans : /opt/lampp/etc
Bon... Il est où ce %$¤£* de répertoire temporaire ?
--------------------------------------------------
Vous l'aurez compris, je suis une quiche mais une quiche curieuse, alors HEEELP !