Zip uitpakken op server
Auteur: zwobbel - 04 september 2005 - 18:19 - Gekeurd door: Maarten - Hits: 25465 - Aantal punten: 4.00 (1 stem)
Met deze functie kan je bestanden met de extensie zip automatisch laten uitpakken op de server. Ik gebruik deze voor mijn adminpaneel bij het gastenboek.
ZOdat ik via het paneel de zipfile met afbeeldingen kan uploaden en dan zijn de foto's meteen actief ... en iedereen kan nu foto's toevoege in 1 packet zonder dat ik hun ftp acces moet geven.
OPGELET:
De file waar de functie in staat en de zip file moet CHMOD 7777 zijn.
Code:
<?
//De functie
function unpackZip($dir,$file) {
if ($zip = zip_open($dir.$file.".zip")) {
if ($zip) {
mkdir($dir.$file);
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip,$zip_entry,"r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$dir_name = dirname(zip_entry_name($zip_entry));
if ($dir_name != ".") {
$dir_op = $dir.$file."/";
foreach ( explode("/",$dir_name) as $k) {
$dir_op = $dir_op . $k;
if (is_file($dir_op)) unlink($dir_op);
if (!is_dir($dir_op)) mkdir($dir_op);
$dir_op = $dir_op . "/" ;
}
}
$fp=fopen($dir.$file."/".zip_entry_name($zip_entry),"w");
fwrite($fp,$buf);
zip_entry_close($zip_entry);
} else
return false;
}
zip_close($zip);
}
} else
return false;
return true;
}
// Hoe gebruik ik het script:
$plaats = "bestanden/files/"; //De plaats waar de bestanden staan OPGELET: Eindigen met een slash!
$naam = "afbeeldingen"; // Zonder .zip deze word automatisch geplaatst!
unpackZip($plaats,$naam);
?>
<?
//De functie
function unpackZip( $dir , $file ) {
if ( $zip = zip_open( $dir . $file . ".zip" ) ) {
if ( $zip ) {
while ( $zip_entry = zip_read( $zip ) ) {
if ( zip_entry_open( $zip , $zip_entry , "r" ) ) {
$buf = zip_entry_read( $zip_entry , zip_entry_filesize( $zip_entry ) ) ;
$dir_name = dirname ( zip_entry_name
( $zip_entry ) ) ; if ( $dir_name != "." ) {
$dir_op = $dir . $file . "/" ;
foreach ( explode ( "/" , $dir_name ) as $k ) { $dir_op = $dir_op . $k ;
$dir_op = $dir_op . "/" ;
}
}
$fp = fopen ( $dir . $file . "/" . zip_entry_name
( $zip_entry ) , "w" ) ; zip_entry_close( $zip_entry ) ;
} else
return false ;
}
zip_close( $zip ) ;
}
} else
return false ;
return true ;
}
// Hoe gebruik ik het script:
$plaats = "bestanden/files/" ; //De plaats waar de bestanden staan OPGELET: Eindigen met een slash!
$naam = "afbeeldingen" ; // Zonder .zip deze word automatisch geplaatst!
unpackZip( $plaats , $naam ) ;
?>
Download code (.txt)
Stemmen
Niet ingelogd.