117 lines
3.6 KiB
PHP
Executable File
117 lines
3.6 KiB
PHP
Executable File
<?php
|
|
require("../config/config.php");
|
|
require(CHEMIN."inc/inc-functions.php");
|
|
require(CHEMIN."inc/classe_xml.php");
|
|
require(CHEMIN."inc/inc-display-functions.php");
|
|
|
|
// import depuis un zip
|
|
// on envoie les images vers upload puis on lance le formulaire
|
|
//print_r($_POST);
|
|
//print_r($_FILES);
|
|
if(isset($_POST['submit-zip'])){
|
|
$filename = $_FILES['zip']['name'];
|
|
$tmp_name = $_FILES['zip']['tmp_name'];
|
|
|
|
$ext = pathinfo($filename, PATHINFO_EXTENSION);
|
|
if(!in_array(strtolower($ext),array('zip'))){
|
|
echo "Erreur de fichier, ceci n'est pas un zip !";
|
|
die();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
zip_flatten( $tmp_name, CHEMIN.DOSSIER_UPLOAD );
|
|
|
|
|
|
/*
|
|
$zip = new ZipArchive;
|
|
$res = $zip->open($tmp_name);
|
|
$valid_ext = array('jpg','png','gif','jpeg');
|
|
if ($res === TRUE) {
|
|
for($i = 0; $i < $zip->numFiles; $i++){
|
|
$nom=$zip->getNameIndex($i);
|
|
if(strpos($nom, "__MACOSX") === false){
|
|
|
|
$fileParts = pathinfo($nom);
|
|
//print_r($fileParts);
|
|
if(!isset($fileParts['extension'])){
|
|
continue;
|
|
}
|
|
$ext = strtolower($fileParts['extension']);
|
|
if(in_array(strtolower($ext),$valid_ext)){
|
|
//echo $fileParts['basename']."<br>";
|
|
$zip->extractTo(CHEMIN.DOSSIER_UPLOAD,$nom);
|
|
}
|
|
|
|
} else {
|
|
// erreur !
|
|
}
|
|
}
|
|
$zip->close();
|
|
echo 'Unzippé !<br>Redirection dans un instant';
|
|
} else {
|
|
echo 'Echec !<br>Quelque chose s\'est mal passé';
|
|
}
|
|
*/
|
|
die();
|
|
}
|
|
|
|
function zip_flatten ( $zipfile, $dest='.' ){
|
|
$valid_ext = array('jpg','png','gif','jpeg');
|
|
$zip = new ZipArchive;
|
|
if ( $zip->open( $zipfile ) ){
|
|
for ( $i=0; $i < $zip->numFiles; $i++ ){
|
|
$entry = $zip->getNameIndex($i);
|
|
if ( substr( $entry, -1 ) == '/' ) continue; // skip directories
|
|
|
|
$ext = strtolower(pathinfo($entry, PATHINFO_EXTENSION));
|
|
|
|
if(!in_array(strtolower($ext),$valid_ext)){
|
|
continue;
|
|
}
|
|
|
|
$fp = $zip->getStream( $entry );
|
|
$ofp = fopen( $dest.'/'.basename($entry), 'w' );
|
|
|
|
if ( ! $fp )
|
|
throw new Exception('Unable to extract the file.');
|
|
|
|
while ( ! feof( $fp ) )
|
|
fwrite( $ofp, fread($fp, 8192) );
|
|
|
|
fclose($fp);
|
|
fclose($ofp);
|
|
}
|
|
|
|
$zip->close();
|
|
}
|
|
else
|
|
return false;
|
|
|
|
return $zip;
|
|
}
|
|
|
|
?>
|
|
<div class="p-3">
|
|
<h2 class="titre-medium mb-3">Ajouter des items zippés</h2>
|
|
<div class="texte-small">
|
|
Cet outil permet de créer des entrées dans la collection générale à partir d'un fichier unique en zip.
|
|
</div>
|
|
|
|
<hr>
|
|
<h3 class="titre-small">Liste des éléments</h3>
|
|
<div class="texte-tiny">
|
|
Images présentes dans le dossier upload
|
|
</div>
|
|
<div id="import-list" class="my-3 texte-mini">
|
|
<form method="post" enctype="multipart/form-data" id="form-zip">
|
|
<fieldset class="form-group mb-3 livre fieldset-illustration">
|
|
<label for="zip" class="mb-1">Fichier zip</label>
|
|
<div class="file-item unique small row">
|
|
<div class="col-12 mb-1"><input class="form-control form-control-sm" type="file" name="zip" value=""></div></div>
|
|
</fieldset>
|
|
<input type="submit" class="btn btn-success btn-sm" name="submit-zip" value="Uploader">
|
|
</form>
|
|
</div>
|