PageRenderTime 52ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/gespac/gestion_inventaire/post_import_csv.php

http://gespac.googlecode.com/
PHP | 90 lines | 48 code | 28 blank | 14 comment | 6 complexity | 24349309666123202aeae25ffc5c993c MD5 | raw file
  1. <?PHP
  2. /*******************************************************
  3. *
  4. * Requętes pour Import du fichier import csv
  5. *
  6. ********************************************************/
  7. // lib
  8. require_once ('../fonctions.php');
  9. include_once ('../config/databases.php');
  10. include_once ('../../class/Log.class.php');
  11. include_once ('../../class/Sql.class.php');
  12. // Cnx ŕ la base
  13. $con_gespac = new Sql($host, $user, $pass, $gespac);
  14. $log = new Log ("../dump/log_sql.sql");
  15. $dossier = '../dump/'; // dossier oů sera déplacé le fichier
  16. $fichier = basename($_FILES['myfile']['name']);
  17. $extensions = array('.txt', '.csv');
  18. $extension = strrchr($_FILES['myfile']['name'], '.');
  19. $origine = $_POST ['origine'];
  20. $etat = $_POST ['etat'];
  21. $marque_id = $_POST ['marque_id'];
  22. //Si l'extension n'est pas dans le tableau
  23. if ( !in_array($extension, $extensions) )
  24. $erreur = 'Vous devez uploader un fichier de txt ou csv...';
  25. if (!isset($erreur)) { //S'il n'y a pas d'erreur, on upload, on créé la marque ...
  26. //On formate le nom du fichier ici...
  27. $fichier = strtr($fichier, 'ŔÁÂĂÄĹÇČÉĘËĚÍÎĎŇÓÔŐÖŮÚŰÜÝŕáâăäĺçčéęëěíîďđňóôőöůúűüý˙', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  28. $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
  29. //On upload et on teste si la fonction renvoie TRUE
  30. if ( move_uploaded_file($_FILES['myfile']['tmp_name'], $dossier . $fichier) ) {
  31. echo $fichier . " envoyé avec succčs !";
  32. // ************ Traitement du fichier uploadé *****************
  33. $chemin_import = $dossier . $fichier;
  34. $handle = fopen($chemin_import, "r");
  35. $row = 0; // [AMELIORATION] penser ŕ virer l'entęte
  36. while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
  37. $line[$row][0] = $data[0];
  38. $line[$row][1] = $data[1];
  39. $line[$row][2] = $data[2];
  40. if ( $line[$row][0] <> "" && $line[$row][1] <> "") { // On ne prend le champ que si le nom et le ssn sont non nuls
  41. $req_import_csv = "INSERT INTO materiels (mat_nom, mat_serial, mat_dsit, mat_etat, mat_origine, salle_id, user_id, marque_id, mat_suppr) VALUES ('" . trim($line[$row][0]) . "', '" . trim($line[$row][1]) ."', '" . trim($line[$row][2]) . "', '$etat', '$origine', 1, 1, $marque_id, 0 );";
  42. $con_gespac->Execute ( $req_import_csv );
  43. // On log la requęte SQL
  44. $log->Insert ( $req_import_csv );
  45. }
  46. $row++;
  47. }
  48. //Insertion d'un log
  49. $log_texte = "Import fichier CSV pour la marque <b>$marque $modele</b>";
  50. $req_log_import_csv = "INSERT INTO logs ( log_type, log_texte ) VALUES ( 'Import CSV', '$log_texte' )";
  51. $con_gespac->Execute ( $req_log_import_csv );
  52. // On se déconnecte de la db
  53. $con_gespac->Close();
  54. ?>
  55. <script>window.close();</script>
  56. <?PHP
  57. }
  58. else // En cas d'échec d'upload
  59. echo 'Echec de l\'upload du fichier ' . $fichier;
  60. } else // En cas d'erreur dans l'extension
  61. echo $erreur;
  62. ?>