Ciro García
Ciro García

Reputation: 650

Can't unzip file with php

I have a folder in my web server were I put zip files that I need to then unzip. I want to do that with php and this is what I have tried but it does not work:

<?php
$file = $_GET["file"];
$zip = new ZipArchive;
$res = $zip->open($file+'.zip');
$zip->extractTo('./');
$zip->close();
?>

The zip files are in the same folder as the php file, but when I go to the php page it does nothing.

By doing some testing I have found out that the script dies on the $zip = new ZipArchive; line

How can I manage this to work?

Upvotes: 1

Views: 1935

Answers (3)

KUMAR
KUMAR

Reputation: 1995

<?php

$fileName = $_GET['file'];  // get file name in the URL param "file"

if (isset($fileName)) {    // if $fileName php variable is set than    


    $zip = new ZipArchive;          // create object
    $res = $zip->open($fileName);   // open archive
    if ($res === TRUE) {
      $zip->extractTo('./');        // extract contents to destination directory
      $zip->close();               //close the archieve    
      echo 'Extracted file "'.$fileName.'"';
    } else {
      echo 'Cannot find the file name "'.$fileName.'" (the file name should include extension (.zip, ...))';
    }
}
else {
    echo 'Please set file name in the "file" param';
}

?>

Note:- For More Details Please refer https://www.php.net/manual/en/class.ziparchive.php

Upvotes: 3

Chilarai
Chilarai

Reputation: 1888

Try this code. Also change $zip->open($file+".zip"); to $zip->open($file);. + (plus sign) is not concatenation operator in php

<?php
    // $_GET["file"] is set to `a.zip`

    $file = $_GET["file"];
    $zip = new ZipArchive;
    $res = $zip->open($file);
    $zip->extractTo('./');
    $zip->close();
?>

Upvotes: 0

Ciro Garc&#237;a
Ciro Garc&#237;a

Reputation: 650

I have found the problem. The code is fine, but the hosting service is not, and they do not have the ZIP extension available right now

Upvotes: 0

Related Questions