Skip to content
Extraits de code Groupes Projets
Valider 08d2dbd1 rédigé par Antoine Pitrou's avatar Antoine Pitrou
Parcourir les fichiers

Repartir les documents dans des répertoires en fonction du type (extension du fichier).

Suggestions pour une meilleure répartition ?
parent fb56c915
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -236,7 +236,7 @@ if ($ob_exists) { ...@@ -236,7 +236,7 @@ if ($ob_exists) {
// special bug Netscape Win 4.0x // special bug Netscape Win 4.0x
if (eregi("Mozilla/4\.0[^ ].*Win", $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) { if (eregi("Mozilla/4\.0[^ ].*Win", $HTTP_SERVER_VARS['HTTP_USER_AGENT'])) {
$use_gz = false; $use_gz = false;
} }
if ($use_gz) { if ($use_gz) {
@ob_start("ob_gzhandler"); @ob_start("ob_gzhandler");
......
...@@ -6,6 +6,31 @@ if (defined("_INC_CACHE")) return; ...@@ -6,6 +6,31 @@ if (defined("_INC_CACHE")) return;
define("_INC_CACHE", "1"); define("_INC_CACHE", "1");
//
// Retourne true si le sous-repertoire peut etre cree, false sinon
//
function creer_repertoire($base, $subdir) {
if (file_exists("$base/.plat")) return false;
$path = $base.'/'.$subdir;
if (file_exists($path)) return true;
@mkdir($path, 0777);
@chmod($path, 0777);
$ok = false;
if ($f = @fopen("$path/.test", "w")) {
@fputs($f, '<?php $ok = true; ?'.'>');
@fclose($f);
include("$path/.test");
}
if (!$ok) {
$f = fopen("$base/.plat", "w");
fclose($f);
}
return $ok;
}
function purger_repertoire($dir, $age, $regexp = '') { function purger_repertoire($dir, $age, $regexp = '') {
$handle = opendir($dir); $handle = opendir($dir);
$t = time(); $t = time();
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
$dir_ecrire = 'ecrire/'; $dir_ecrire = 'ecrire/';
include ("ecrire/inc_version.php3"); include ("ecrire/inc_version.php3");
include_local ("inc-cache.php3");
// //
// Ajouter un forum // Ajouter un forum
...@@ -24,7 +25,10 @@ $fichier_requete = eregi_replace('&(submit|valider|(var_[^=&]*)|recalcul)=[^&]*' ...@@ -24,7 +25,10 @@ $fichier_requete = eregi_replace('&(submit|valider|(var_[^=&]*)|recalcul)=[^&]*'
$fichier_cache = substr(rawurlencode($fichier_requete), 0, 128); $fichier_cache = substr(rawurlencode($fichier_requete), 0, 128);
$sousrep_cache = substr(md5($fichier_cache), 0, 1); $sousrep_cache = substr(md5($fichier_cache), 0, 1);
if (!file_exists("CACHE/.plat") AND !file_exists("CACHE/$sousrep_cache")) { if (creer_repertoire("CACHE", $sousrep_cache))
$fichier_cache = "$sousrep_cache/$fichier_cache";
/*if (!file_exists("CACHE/.plat") AND !file_exists("CACHE/$sousrep_cache")) {
@mkdir("CACHE/$sousrep_cache", 0777); @mkdir("CACHE/$sousrep_cache", 0777);
@chmod("CACHE/$sousrep_cache", 0777); @chmod("CACHE/$sousrep_cache", 0777);
$ok = false; $ok = false;
...@@ -42,7 +46,7 @@ if (!file_exists("CACHE/.plat") AND !file_exists("CACHE/$sousrep_cache")) { ...@@ -42,7 +46,7 @@ if (!file_exists("CACHE/.plat") AND !file_exists("CACHE/$sousrep_cache")) {
if (!file_exists("CACHE/.plat")) { if (!file_exists("CACHE/.plat")) {
$fichier_cache = "$sousrep_cache/$fichier_cache"; $fichier_cache = "$sousrep_cache/$fichier_cache";
} }
*/
$chemin_cache = "CACHE/$fichier_cache"; $chemin_cache = "CACHE/$fichier_cache";
......
...@@ -5,6 +5,7 @@ include ("ecrire/inc_version.php3"); ...@@ -5,6 +5,7 @@ include ("ecrire/inc_version.php3");
include_ecrire("inc_connect.php3"); include_ecrire("inc_connect.php3");
include_ecrire("inc_meta.php3"); include_ecrire("inc_meta.php3");
include_ecrire("inc_admin.php3"); include_ecrire("inc_admin.php3");
include_local("inc-cache.php3");
if ($HTTP_POST_VARS) $vars = $HTTP_POST_VARS; if ($HTTP_POST_VARS) $vars = $HTTP_POST_VARS;
else $vars = $HTTP_GET_VARS; else $vars = $HTTP_GET_VARS;
...@@ -102,8 +103,6 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document) { ...@@ -102,8 +103,6 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document) {
$type_upload = $row['upload']; $type_upload = $row['upload'];
} }
echo "$orig<p>$source<p>";
// Ne pas accepter les types non autorises // Ne pas accepter les types non autorises
if ($type_upload != 'oui') return; if ($type_upload != 'oui') return;
if ($type_inclus == 'non' AND $mode == 'vignette') return; if ($type_inclus == 'non' AND $mode == 'vignette') return;
...@@ -132,22 +131,26 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document) { ...@@ -132,22 +131,26 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document) {
else else
$dest = "doc-$id_document"; $dest = "doc-$id_document";
} }
$dest = ereg_replace("\.([^.]+)$", "", $dest).".$ext"; $dest = ereg_replace("\.([^.]+)$", "", $dest) . ".$ext";
$loc = "IMG/$dest";
if (!deplacer_fichier_upload($source, $loc)) return; if (creer_repertoire("IMG", $ext))
$dest_path = "IMG/$ext/$dest";
else
$dest_path = "IMG/$dest";
if (!deplacer_fichier_upload($source, $dest_path)) return;
// //
// Recopier le fichier // Recopier le fichier
// //
$size_image = getimagesize($loc); $size_image = getimagesize($dest_path);
$type_image = $size_image[2]; $type_image = $size_image[2];
if ($type_image) { if ($type_image) {
$largeur = $size_image[0]; $largeur = $size_image[0];
$hauteur = $size_image[1]; $hauteur = $size_image[1];
} }
$taille = filesize($loc); $taille = filesize($dest_path);
if ($nouveau) { if ($nouveau) {
if (!$mode) $mode = $type_image ? 'vignette' : 'document'; if (!$mode) $mode = $type_image ? 'vignette' : 'document';
...@@ -155,7 +158,7 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document) { ...@@ -155,7 +158,7 @@ function ajout_doc($orig, $source, $dest, $mode, $id_document) {
if ($largeur && $hauteur) $update .= "titre='image $largeur x $hauteur', "; if ($largeur && $hauteur) $update .= "titre='image $largeur x $hauteur', ";
} }
$query = "UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier='$loc' ". $query = "UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier='$dest_path' ".
"WHERE id_document=$id_document"; "WHERE id_document=$id_document";
mysql_query($query); mysql_query($query);
if ($id_document_lie) { if ($id_document_lie) {
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter