1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| <?php
//Vérifie si fichier existe
if (isset($_FILES['fichier'])) {
// Dossier de destination
$dossier = 'plans/';
//Extrait le nom du fichier
$fichier = basename($_FILES['fichier']['name']);
//Taille maximalle 50Mo
$taille_maxi = 50000000;
//Lit taille fichier
$taille = filesize($_FILES['fichier']['tmp_name']);
// Création tableaux avec format autorisé
$extensions = array('.zip');
// Récupère la partie de la chaine à partir du dernier . pour connaitre l'extension
$extension = strrchr($_FILES['fichier']['name'], '.');
//
if (!in_array($extension, $extensions)) {
$erreur = "Vous devez uploader un fichier de type .ifc";
}
if ($taille > $taille_maxi) {
$erreur = "Le fichier est trop volumineux, veuillez upload un fichier de moins de 50Mo.";
}
if (!isset($erreur)) {
// Remplacement des lettres accentuées
$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// Expression régulière remplaçant tout ce qui n'est pas chiffre ou lettre non-accentués par '-'
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
//Si fichier bon et déplacé, exécution ajout info base
if (move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) {
$zip = new ZipArchive;
if ($zip->open($dossier .$fichier) === TRUE) {
$zip->extractTo($dossier);
$zip->close();
require 'connect.php';
// récupérations des valeurs des champs :
$ajoutnom = $_POST["nom_plan"];
$ajoutdesi = $_POST["desi_plan"];
$nomplan = $_FILES['fichier']['name'];
$lienplan = 'plans/' . $nomplan;
//requête sql :
$ajoutPlanSQL = "INSERT INTO vv_plans (nom_plan, designation, lien_plan)
VALUES( :nom_plan, :desi_plan, :lien_plan)";
// exécution de la requête :
$sth = $dbh->prepare($ajoutPlanSQL);
$sth->execute(array(':nom_plan' => $_POST["nom_plan"], ':desi_plan' => $_POST["desi_plan"], ':lien_plan' => $lienplan));
unlink($lienplan);
// vérification de l'exécution
if ($sth) {
header("location:ajoutPlan.php");
} else {
echo "Ajout base échoué";
}
} else {
echo "Echec décompression de l'archive ";
}
} else {
echo 'Echec upload..';
}
} else {
echo $erreur;
}
}
?> |
Partager