Rechercher : dans
Par :

Php upload sous linux

Dernière réponse le 13 déc 2008 à 10:51:31 spacm, le 10 déc 2008 à 18:12:02 
 Signaler ce message aux modérateurs

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é
Configuration: Linux
Mozilla 1.9.0.3

Meilleures réponses pour « php upload sous linux » dans :
[PHP] Upload de fichiers Voir Le langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Installation rapide de LAMP (Apache+MySql+php) sous Linux Voir LAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
[Webmaster] Choisir un bon éditeur, les éditeurs à éviter VoirIntroduction I Les éditeurs à éviter I.1 Frontpage I.2 Word I.3 Publisher II Les éditeurs recommandés II.1 Editeurs WYSIWYG II.1.1 Dreamweaver II.1.2 Web Expert II.1.3 Nvu / Kompozer II.1.4 Amaya II.2 Editeurs en mode code
Installation d'un serveur Web sous Linux (Apache, PHP et MySQL) VoirIntroduction Un serveur web est un logiciel permettant de rendre accessibles à de nombreux ordinateurs (les clients) des pages web stockées sur le disque. Cette fiche pratique explique comment installer le serveur web Apache sur un système de type...
Introduction à PHP VoirQu'est-ce que PHP? PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en Javascript ou une applet Java s'exécute sur votre ordinateur...). La...

1

spacm, le 10 déc 2008 à 19:37:58

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é...

Répondre à spacm

2

Alain_42, le 10 déc 2008 à 22:34:14

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

Répondre à Alain_42

3

 spacm, le 13 déc 2008 à 10:51:31

Merci d'avoir répondu.

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

Répondre à spacm