Skip to content
Extraits de code Groupes Projets
Valider c0534f9e rédigé par ARNO*'s avatar ARNO*
Parcourir les fichiers

Upload de Zip: une fenetre intermediaire permet de choisir ce que l'on en fait...

Upload de Zip: une fenetre intermediaire permet de choisir ce que l'on en fait (joint en tant qu'archive, ou decompacte)
parent a216302d
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -367,12 +367,7 @@ function texte_upload_manuel($dir, $inclus = '') { ...@@ -367,12 +367,7 @@ function texte_upload_manuel($dir, $inclus = '') {
$ledossier_prec = $ledossier; $ledossier_prec = $ledossier;
if ($exts[$ext] == 'oui') $texte_upload .= "\n<option value=\"$f\">&nbsp; &nbsp; &nbsp; &nbsp; $lefichier</option>";
if ($ext == "zip") {
$texte_upload .= "\n<option value=\"$f\">&nbsp; &nbsp; &nbsp; &nbsp; $lefichier (en tant que fichier zip)</option>";
$texte_upload .= "\n<option value=\"$f--unzip\">&nbsp; &nbsp; &nbsp; &nbsp; $lefichier (d&eacute;compacter et installer les documents s&eacute;par&eacute;s)</option>";
}
else if ($exts[$ext] == 'oui') $texte_upload .= "\n<option value=\"$f\">&nbsp; &nbsp; &nbsp; &nbsp; $lefichier</option>";
} }
} }
......
...@@ -168,6 +168,9 @@ function ajout_image($source, $dest) { ...@@ -168,6 +168,9 @@ function ajout_image($source, $dest) {
function ajout_doc($orig, $source, $dest, $mode, $id_document, $doc_vignette='', $titre_vignette='', $descriptif_vignette='', $titre_automatique=true) { function ajout_doc($orig, $source, $dest, $mode, $id_document, $doc_vignette='', $titre_vignette='', $descriptif_vignette='', $titre_automatique=true) {
global $hash_id_auteur, $hash, $id_article, $type; global $hash_id_auteur, $hash, $id_article, $type;
//die ("<li>$orig<li>$source<li>$dest<li>$mode<li>$id_document");
// //
// Securite // Securite
// //
...@@ -293,16 +296,90 @@ if (!$image_name AND $image2) { ...@@ -293,16 +296,90 @@ if (!$image_name AND $image2) {
// //
if ($ajout_doc == 'oui') { if ($ajout_doc == 'oui') {
if (ereg("--unzip$",$image_name)){ if (eregi(".zip$",$image_name) AND !$action_zip){
// Pretraitement des fichiers ZIP
$nom_zip = substr($image_name, 0, strlen($image_name)-7); // 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;
$image_name = "$dest";
require_once('ecrire/pclzip.lib.php'); require_once('ecrire/pclzip.lib.php');
$archive = new PclZip($nom_zip); $zip = new PclZip($image_name);
$list = $archive->extract(PCLZIP_OPT_PATH, "IMG/tmp", PCLZIP_OPT_REMOVE_ALL_PATH);
if (($list = $zip->listContent()) == 0) {
// pas possible de decompacter: installer comme fichier zip joint
$image = $image_name;
$supprimer_ecrire_upload = $image;
}
else {
// presenter une interface pour choisir si fichier joint ou decompacter
include_ecrire ("inc_presentation.php3");
install_debut_html("Fichier ZIP");
$image_name = "IMG/tmp";
$effacer_tmp = true; echo "<p>Le fichier que vous proposez d'installer est un fichier Zip.</p><p> Ce fichier peut &ecirc;tre :</p>\n\n";
if ($HTTP_POST_VARS) $vars = $HTTP_POST_VARS;
else $vars = $HTTP_GET_VARS;
$link = new Link("spip_image.php3");
while (list ($key, $val) = each ($vars)) {
if ($key == "image" OR $key == "image2") {
$link->addVar("image_name", $image_name);
}
else {
$link->addVar($key, $val);
}
}
echo $link->getForm('POST');
echo "<div><input type='radio' name='action_zip' value='telquel'>install&eacute; tel quel, en tant qu'archive compress&eacute;e Zip,</div>";
echo "<div><input type='radio' name='action_zip' value='decompacter'>d&eacute;compress&eacute; et chaque &eacute;l&eacute;ment qu'il contient install&eacute; sur le site.</div>";
echo "<div>&nbsp;</div>";
echo "<div style='text-align: right;'><input class='fondo' style='font-size: 9px;' TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."'></div>";
echo "</form>";
install_fin_html();
die();
}
}
else if (eregi(".zip$",$image_name)) {
if ($action_zip == "telquel") {
$effacer_tmp = true;
$id_document = ajout_doc($image_name, $image_name, $fichier, "document", $id_document);
} else {
require_once('ecrire/pclzip.lib.php');
$archive = new PclZip($image_name);
$list = $archive->extract(PCLZIP_OPT_PATH, "IMG/tmp", PCLZIP_OPT_REMOVE_ALL_PATH);
$image_name = "IMG/tmp";
$effacer_tmp = true;
}
} }
...@@ -331,7 +408,10 @@ if ($ajout_doc == 'oui') { ...@@ -331,7 +408,10 @@ if ($ajout_doc == 'oui') {
if ($effacer_tmp) { if ($effacer_tmp) {
$d = opendir("IMG/tmp"); $d = opendir("IMG/tmp");
while ($f = readdir($d)) {
if (is_file("IMG/tmp/$f")) @unlink("IMG/tmp/$f");
}
$d = opendir("IMG/tmp_zip");
while ($f = readdir($d)) { while ($f = readdir($d)) {
if (is_file("IMG/tmp/$f")) @unlink("IMG/tmp/$f"); if (is_file("IMG/tmp/$f")) @unlink("IMG/tmp/$f");
} }
......
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