猿问

无法使用 php 解压文件

我的网络服务器中有一个文件夹,用于存放需要解压的 zip 文件。我想用 php 来做到这一点,这是我尝试过的,但它不起作用:


<?php

$file = $_GET["file"];

$zip = new ZipArchive;

$res = $zip->open($file+'.zip');

$zip->extractTo('./');

$zip->close();

?>

zip 文件与 php 文件位于同一文件夹中,但是当我转到 php 页面时它什么也不做。


通过进行一些测试,我发现脚本在线上死掉$zip = new ZipArchive;了


我怎样才能让它发挥作用?


阿晨1998
浏览 133回答 3
3回答

侃侃尔雅

<?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';}?>

四季花海

我已经找到问题了。代码很好,但托管服务不行,而且他们现在没有可用的 ZIP 扩展名

SMILET

试试这个代码。也$zip->open($file+".zip");改为$zip->open($file);. +(加号)不是 php 中的连接运算符<?php&nbsp; &nbsp; // $_GET["file"] is set to `a.zip`&nbsp; &nbsp; $file = $_GET["file"];&nbsp; &nbsp; $zip = new ZipArchive;&nbsp; &nbsp; $res = $zip->open($file);&nbsp; &nbsp; $zip->extractTo('./');&nbsp; &nbsp; $zip->close();?>
随时随地看视频慕课网APP
我要回答