Php upload sous linux

Résolu/Fermé
spacm Messages postés 141 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 30 août 2016 - 10 déc. 2008 à 18:12
spacm Messages postés 141 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 30 août 2016 - 13 déc. 2008 à 10:51
Bonjour,

Je cherche à utiliser les fonctions d'upload en php (avec apache 2 sous debian lenny), et j'ai donc voulu fair eun test avec le script joint ci-dessous. Je n'obtiens aucun message d'erreur, la variable $_FILES se remplis correctement, avec un code erreur 0: (pas d'erreur)
Cependant, pas moyen de mettre la main sur ce soi-disant fichier uploadé.


Pour info: j'ai la main sur le serveur, upload_tmp_dir est indéfini, mais j'ai fait d'autres essais en lui donnant une valeur.

1) si vous savez ou se trouve l'upload dir par défaut
2) Si quelqu'un a une idée de piste à explorer

Je l'en remercie d'avance.

Comme vous pouvez le constater, certaines parties sont commentées (je ne cherche pa sencore à déplacer ou renommer le fichier reçu)
la fonction message fait juste un affichage un peu plus élaboré que echo().

<?php  ?>
<head>
<title>
test upload
</title>
<link rel="Stylesheet" href="../css/styles_globaux.css" type="text/css" />
</head>
<body>


<?php
//config
    include '../config.php';

// inclusion de bibliothèques
  for($i=0;$i<count($dConfig['includes']);$i++){
    include("../".$dConfig['includes'][$i]);
    echo $dConfig['includes'][$i];
  }//for

?>
/****form_upload******/


<form method="post" enctype="multipart/form-data" action="test_upload.php">
<p>
<input type="file" name="fichier" size="30">
<input type="submit" name="upload" value="Envoyer">
</p>
</form>

/***** reponse_upload ********/</br>

<?php

if ( isset($_POST['upload']) ) // si formulaire soumis
{
	message(print_r($_FILES));
   $content_dir = 'upload/'; // dossier où sera déplacé le fichier

   $tmp_file = $_FILES['fichier']['tmp_name'];  
    
	message('Contenu $_FILES[\'fichier\'][\'tmp_name\']:'.$_FILES['fichier']['tmp_name']);
	
    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier n'a pas été uploadé");
    }

    // on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];

    if( !strstr($type_file, 'csv') )
    {
        exit("Le format attendu est un csv");
    }

    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

   // if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
   // {
   //     exit("Impossible de copier le fichier dans $content_dir");
   // }

    echo "Le fichier a bien été uploadé";
}

?>

</body>


et ce qui m'est renvoyé par le navigateur:

include/bd.incfonctions.php/****form_upload******/
ici affichage du form d'upload
/***** reponse_upload ********/
Array ( [fichier] => Array ( [name] => 243_liste_usagers_Athis Mons__2008_12_02__11.38.csv [type] => text/csv [tmp_name] => /tmp/phpfOSfng [error] => 0 [size] => 126340 ) )

1

Contenu $_FILES['fichier']['tmp_name']:/tmp/phpfOSfng
Le fichier a bien été uploadé
A voir également:

3 réponses

spacm Messages postés 141 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 30 août 2016 30
10 déc. 2008 à 19:37
pas encore bien compris, mais a priori, il y a bien de l'upload qui s'effectue...
Je ne sais pas où va le fichier temporaire (ça m'intéresse, d'ailleurs, si quelqu'un a une idée, sachan que mon php.ini est celui par défaut sur debian lenny); cependant, je peux accéder au fichier uploadé...
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 déc. 2008 à 22:34
Bonsoir,

Contenu $_FILES['fichier']['tmp_name']:/tmp/phpfOSfng



ça vaut dire que ton fichier est temporairement uploadé dans le rep /tmp sou sle nom php.......


mais d'une part tu fait move_uploaded_file donc il est transféré en changeant de nom et de plus il est killé automatiquement à la fin du script php
0
spacm Messages postés 141 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 30 août 2016 30
13 déc. 2008 à 10:51
Merci d'avoir répondu.

Entre temps, j'avais "passé" l'obstacle, sans toutefois comprendre. Je crois que ça y est :)
0