|
<? Php
/*
By: Matt Ford
Purpose: Basic class to create zipfiles
*/
Class zipFile {
Public $ files = array ();
Public $ settings = NULL;
Public $ fileInfo = array (
"Name" => "",
"NumFiles" => 0,
"FullFilePath" => ""
);
Private $ fileHash = "";
Private $ zip = "";
Public function _ construct ($ settings ){
$ This-> zipFile ($ settings );
}
Public function zipFile ($ settings ){
$ This-> zip = new ZipArchive ();
$ This-> settings = new stdClass ();
Foreach ($ settings as $ k => $ v ){
$ This-> settings-> $ k = $ v;
}
}
Public function create (){
$ This-> fileHash = md5 (implode (",", $ this-> files ));
$ This-> fileInfo ["name"] = $ this-> fileHash. ". zip ";
$ This-> fileInfo ["numFiles"] = count ($ this-> files );
$ This-> fileInfo ["fullFilePath"] = $ this-> settings-> path.
"/". $ This-> fileInfo ["name"];
If (file_exists ($ this-> fileInfo ["fullFilePath"]) {
Return array (
False,
"Already created:". $ this-> fileInfo ["fullFilePath"]
);
}
Else {
$ This-> zip-> open ($ this-> fileInfo ["fullFilePath"], ZIPARCHIVE: CREATE );
$ This-> addFiles ();
$ This-> zip-> close ();
Return array (
True,
"New file created:". $ this-> fileInfo ["fullFilePath"]
);
}
}
Private function addFiles (){
Foreach ($ this-> files as $ k ){
$ This-> zip-> addFile ($ k, basename ($ k ));
}
}
}
$ Settings = array (
"Path" => dirname (_ FILE __)
);
$ ZipFile = new zipFile ($ settings );
$ ZipFile-> files = array (
"./Images/navoff.jpg ",
"./Images/navon.jpg"
);
List ($ success, $ error) = $ zipFile-> create ();
If ($ success === true ){
// Success
}
Else {
// Error because: $ error
}
?>
|