function ajout_doc($doc_file, $id_ct, $doc_name, $cpt_doc) { global $max_size, $total_max_size, $edit_devoir, $multisite; /* Vérification du type de fichier */ //if (my_ereg("\.([^.]+)$", $doc_file['name'][$cpt_doc], $match)) { if (function_exists("mb_ereg") && mb_ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match) || function_exists("ereg") && ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match)) { $ext = corriger_caracteres(my_strtolower($match[1])); $ext = corriger_extension($ext); } else { $ext = ''; } $query = "SELECT id_type FROM ct_types_documents WHERE extension='{$ext}' AND upload='oui'"; $result = sql_query($query); if ($row = @sql_row($result, 0)) { $id_type = $row[0]; } else { return "Erreur : Ce type de fichier n'est pas autorisé en téléchargement.<br />\nSi vous trouvez cela regrettable, contactez l'administrateur.<br />\nIl pourra modifier ce paramétrage dans<br />\n*Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*."; die; } /* Vérification de la taille du fichier */ $sql = "select id_groupe from ct_entry where id_ct='{$id_ct}'"; $id_groupe = sql_query1($sql); $max_size_ko = $max_size / 1024; $taille = $doc_file['size'][$cpt_doc]; if ($taille > $max_size) { return "Téléchargement impossible : taille maximale autorisée : " . $max_size_ko . " Ko"; die; } if ($taille == 0) { return "Le fichier sélectionné semble vide : transfert impossible."; die; } $query = "SELECT DISTINCT sum(taille) somme FROM ct_documents d, ct_entry e WHERE (e.id_groupe='" . $id_groupe . "' and e.id_ct = d.id_ct)"; $total = sql_query1($query); if ($total + $taille > $total_max_size) { return "Téléchargement impossible : espace disque disponible (" . ($total_max_size - $total) / 1024 . " Ko) insuffisant."; die; } /* Recopier le fichier */ $dest = '../documents/'; $dossier = ''; $multi = isset($multisite) && $multisite == 'y' ? $_COOKIE['RNE'] . '/' : NULL; if (isset($multisite) && $multisite == 'y' && is_dir('../documents/' . $multi) === false) { @mkdir('../documents/' . $multi); $dest .= $multi; } elseif (isset($multisite) && $multisite == 'y') { $dest .= $multi; } if (isset($edit_devoir)) { $dossier = "cl_dev" . $_POST['id_groupe']; } else { $dossier = "cl" . $_POST['id_groupe']; } if (creer_repertoire($dest, $dossier)) { $dest .= $dossier . '/'; } else { return "Problème d'écriture sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } $nom_sans_ext = mb_substr(basename($doc_file['name'][$cpt_doc]), 0, mb_strlen(basename($doc_file['name'][$cpt_doc])) - (mb_strlen($ext) + 1)); $nom_sans_ext = my_ereg_replace("[^.a-zA-Z0-9_=-]+", "_", $nom_sans_ext); if (strstr($nom_sans_ext, "..")) { return "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } $n = 0; while (file_exists($newFile = $dest . $nom_sans_ext . ($n++ ? '-' . $n : '') . '.' . $ext)) { } $dest_path = $newFile; if (!deplacer_fichier_upload($doc_file['tmp_name'][$cpt_doc], $dest_path)) { return "Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } if ($doc_name[$cpt_doc] == '') { $doc_name[$cpt_doc] = basename($newFile); } $nouveau = false; if (!isset($id_document)) { if (isset($edit_devoir)) { $query = "INSERT INTO ct_devoirs_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct_devoir='{$id_ct}', titre='" . corriger_caracteres($doc_name[$cpt_doc]) . "'"; } else { $query = "INSERT INTO ct_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct='{$id_ct}', titre='" . corriger_caracteres($doc_name[$cpt_doc]) . "'"; } sql_query($query); $id_document = is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"])) ? false : $___mysqli_res; $nouveau = true; } else { if (isset($edit_devoir)) { $query = "UPDATE ct_devoirs_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct_devoir='{$id_ct}', titre='{$titre}' WHERE id_document={$id_document}"; } else { $query = "UPDATE ct_documents SET taille='{$taille}', emplacement='{$dest_path}', id_ct='{$id_ct}', titre='{$titre}' WHERE id_document={$id_document}"; } sql_query($query); } return "Téléchargement réussi !"; }
function ajout_fichier($doc_file, $dest, $cpt_doc, $id_groupe) { global $max_size, $total_max_size; /* Vérification du type de fichier */ $ext = ''; //if (my_ereg("\.([^.]+)$", $doc_file['name'][$cpt_doc], $match)) { if (function_exists("mb_ereg") && mb_ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match) || function_exists("ereg") && ereg("\\.([^.]+)\$", $doc_file['name'][$cpt_doc], $match)) { $ext = corriger_caracteres(my_strtolower($match[1])); $ext = corriger_extension($ext); } $query = "SELECT id_type FROM ct_types_documents WHERE extension='{$ext}' AND upload='oui'"; $result = sql_query($query); if ($row = @sql_row($result, 0)) { $id_type = $row[0]; } else { echo "Erreur : Ce type de fichier n'est pas autorisé en téléchargement.\nSi vous trouvez cela regrettable, contactez l'administrateur.\nIl pourra modifier ce paramétrage dans\n *Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*."; die; } /* Vérification de la taille du fichier */ $max_size_ko = $max_size / 1024; $taille = $doc_file['size'][$cpt_doc]; if ($taille > $max_size) { echo "Erreur : Téléchargement impossible : taille maximale autorisée : " . $max_size_ko . " Ko"; die; } if ($taille == 0) { echo "Le fichier sélectionné semble vide : transfert impossible."; die; } $query = "SELECT DISTINCT sum(taille) somme FROM ct_documents d, ct_entry e WHERE (e.id_groupe='" . $id_groupe . "' and e.id_ct = d.id_ct)"; $total = sql_query1($query); if ($total + $taille > $total_max_size) { echo "Erreur : Téléchargement impossible : espace disque disponible (" . ($total_max_size - $total) / 1024 . " Ko) insuffisant."; die; } /* Crétion du répertoire de destination */ if (!creer_repertoire($dest)) { echo "Erreur : Problème d'écriture sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; echo $dest; die; } /* Recopier le fichier */ $nom_sans_ext = mb_substr(basename($doc_file['name'][$cpt_doc]), 0, mb_strlen(basename($doc_file['name'][$cpt_doc])) - (mb_strlen($ext) + 1)); $nom_sans_ext = my_ereg_replace("[^.a-zA-Z0-9_=-]+", "_", $nom_sans_ext); if (strstr($nom_sans_ext, "..")) { echo "Erreur : Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } $n = 0; while (file_exists($newFile = $dest . "/" . $nom_sans_ext . ($n++ ? '-' . $n : '') . '.' . $ext)) { } $dest_file_path = $newFile; if (!deplacer_fichier_upload($doc_file['tmp_name'][$cpt_doc], $dest_file_path)) { echo "Erreur : Problème de transfert : le fichier n'a pas pu être transféré sur le répertoire. Veuillez signaler ce problème à l'administrateur du site"; die; } return $dest_file_path; }