Page 1 sur 1

Script d'upload qui ne fonctionne plus

Posté : 05 mai 2011, 17:35
par street51
Bonjour,
J'utilise un script qui uploade un fichier CSV pour l'ajouter à ma base de données. Je ne l'ai pas utilisé depuis décembre, et là il ne fonctionne plus.

Voici le script :
<?
ini_set('auto_detect_line_endings',TRUE);
$action=$_POST['action']; 
$fichier=$_POST['fichier']; 

switch($action)

  {
case "ajouter":

if( isset($_POST['upload']) ) 
{
    $content_dir = '';
    $tmp_file = $_FILES['fichier']['tmp_name'];

    if( !is_uploaded_file($tmp_file) )
    { exit("Le fichier est introuvable"); }

    $type_file = $_FILES['fichier']['type'];

    if( !strstr($type_file, 'csv') )
    { echo $type_file; exit("Le fichier n'est pas au format CSV"); }

    $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é : " . $name_file . "<br><br>";
    $fichier = $name_file;
}
	
// Connexion à la BDD...
   
 if (file_exists($fichier))
     $fp = fopen("$fichier", "r"); 
 else
     { 
       echo "Fichier introuvable !<br>Importation stoppée.".mysql_error();
       exit();
     }
      
    while (!feof($fp)) 
    { 
       $liste = fgetcsv($fp,4096,",");
           
       $num = $liste[0]; 
       $ue3b = $liste[1]; 
       $ue5 = $liste[2]; 
       $ue6 = $liste[3]; 
       $ue7 = $liste[4]; 
            
       $query = "UPDATE P1 SET ue3b='$ue3b', ue5='$ue5', ue6='$ue6', ue7='$ue7' WHERE num='$num'"; 
       $result= MYSQL_QUERY($query); 
     } 
     
     echo "<br><b>Importation Ok !</b>"; 
     fclose($fp); 
     MYSQL_CLOSE(); 
   
   break;   

// Le formulaire d'importation...

   default: 
   ?>  
Le script bloque à "application/octet-stream Le fichier n'est pas au format CSV".
"application/octet-stream" correspondant à echo $type_file, je ne sais pas si c'est normal...

Une idée ? :?

Re: Script d'upload qui ne fonctionne plus

Posté : 05 mai 2011, 17:44
par Mazarini
Bonjour,

une piste : strstr() est sensible à la casse. Pour une fonctionnalité identique, mais insensible à la casse, reportez-vous à stristr().

Re: Script d'upload qui ne fonctionne plus

Posté : 05 mai 2011, 18:59
par street51
Merci pour l'info, mas le problème ne semble pas venir d'ici (ça peut par contre m'être utile si des utilisateurs veulent uploader des fichiers CSV).

Le souci venait de "$type_file = $_FILES['fichier']['type'];", en remplaçant ['type'] par ['name'] ça fonctionne :)

Re: Script d'upload qui ne fonctionne plus

Posté : 05 mai 2011, 21:16
par AB
Oui c'est bizarre que cela fonctionnait avant.