Update of /home/spip-cvs/spip
In directory alan:/tmp/cvs-serv8517
Modified Files:
spip_image.php3
Log Message:
bug uload zip + message d'erreur en cas de fichier trop gros (à améliorer)
Index: spip_image.php3
RCS file: /home/spip-cvs/spip/spip_image.php3,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -d -r1.78 -r1.79
--- spip_image.php3 7 Aug 2004 13:04:06 -0000 1.78
+++ spip_image.php3 16 Aug 2004 17:31:43 -0000 1.79
@@ -81,6 +81,11 @@
@header ("Location: spip_test_dirs.php3?test_dir=".dirname($dest));
exit;
}
+ @unlink($dest);
+
+ if ($GLOBALS['_FILES']['size'] == 0) {
+ echo _L("Ce fichier est trop gros pour le serveur, upload limité à ").ini_get('upload_max_filesize');
+ }
}
return $ok;
@@ -297,26 +302,25 @@
//
if ($ajout_doc == 'oui') {
- if (eregi(".zip$",$image_name) AND !$action_zip){
+ if (eregi("\.zip$",$image_name) AND !$action_zip){
// Pretraitement des fichiers ZIP
// Recopier le fichier
-
creer_repertoire('IMG', "tmp");
creer_repertoire('IMG', "tmp_zip");
$dest = 'IMG/tmp_zip/';
$dest .= ereg_replace("[^.a-zA-Z0-9_=-]+", "_", translitteration(ereg_replace("\.([^.]+)$", "", supprimer_tags(basename($image_name)))));
$dest .= ".zip";
- $n = 0;
- if (!deplacer_fichier_upload($image, $dest)) return false;
+ $n = 0;
+ if (!deplacer_fichier_upload($image, $dest))
+ exit;
+
$image_name = "$dest";
-
require_once('ecrire/pclzip.lib.php');
- $zip = new PclZip($image_name);
-
-
+ $zip = new PclZip($image_name);
+
if (($list = $zip->listContent()) == 0) {
// pas possible de decompacter: installer comme fichier zip joint
$afficher_message_zip = false;
@@ -331,25 +335,29 @@
$ext = addslashes(strtolower($match[1]));
$ext = corriger_extension($ext);
- $query = "SELECT * FROM spip_types_documents WHERE extension='$ext' AND upload='oui'";
- $result = spip_query($query);
- if ($row = @spip_fetch_array($result)) {
- $afficher_message_zip = true;
- $aff_fichiers .= "<li>".$list[$i][$key]."</li>";
+ // Regexp des fichiers a ignorer
+ if (!ereg("^(\.|.*/\.|.*__MACOSX/",
+ $list[$i][$key])) {
+ $query = "SELECT * FROM spip_types_documents WHERE extension='$ext' AND upload='oui'";
+ $result = spip_query($query);
+ if ($row = @spip_fetch_array($result)) {
+ $afficher_message_zip = true;
+ $aff_fichiers .= "<li>".$list[$i][$key]."</li>";
+ }
}
}
}
}
}
}
-
+
if ($afficher_message_zip) {
// presenter une interface pour choisir si fichier joint ou decompacter
include_ecrire ("inc_presentation.php3");
install_debut_html("Fichier ZIP");
- echo "<p>Le fichier que vous proposez d'installer est un fichier Zip.</p><p> Ce fichier peut être :</p>\n\n";
+ echo _L("<p>Le fichier que vous proposez d'installer est un fichier Zip.</p><p> Ce fichier peut être :</p>\n\n");
if ($HTTP_POST_VARS) $vars = $HTTP_POST_VARS;
@@ -368,7 +376,7 @@
echo $link->getForm('POST');
- echo "<div><input type='radio' checked name='action_zip' value='telquel'>installé tel quel, en tant qu'archive compressée Zip,</div>";
+ echo _L('')."<div><input type='radio' checked name='action_zip' value='telquel'>installé tel quel, en tant qu'archive compressée Zip,</div>";
echo "<div><input type='radio' name='action_zip' value='decompacter'>décompressé et chaque élément qu'il contient installé sur le site. Les fichiers qui seront alors installés sur le site sont :</div>";
echo "<ul>$aff_fichiers</ul>";
@@ -379,14 +387,14 @@
echo "</form>";
install_fin_html();
- die();
+ exit();
}
else {
$image = $image_name;
$supprimer_ecrire_upload = $image;
}
}
- else if (eregi(".zip$",$image_name)) {
+ else if (eregi("\.zip$",$image_name)) {
if ($action_zip == "telquel") {
$effacer_tmp = true;
@@ -403,9 +411,9 @@
}
- if (is_dir("$image_name")) {
+ if (is_dir($image_name)) {
include_ecrire('inc_documents.php3');
- $fichiers = fichiers_upload("$image_name");
+ $fichiers = fichiers_upload($image_name);
while (list(,$f) = each($fichiers)) {
if (ereg("\.([^.]+)$", $f, $match)) {
$ext = strtolower($match[1]);