push initial du projet par Stéphane
This commit is contained in:
117
inc/inc-add-zip.php
Executable file
117
inc/inc-add-zip.php
Executable file
@@ -0,0 +1,117 @@
|
||||
<?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>
|
||||
Reference in New Issue
Block a user