当前位置: 首页 > 知识库问答 >
问题:

在php中创建zip和下载在Mozilla浏览器中不起作用

俞新翰
2023-03-14

我试图创建一个zip文件,并通过使用ZipArchive库的PHP脚本下载它。

$post['files']这个变量包含Amazon S3上托管的图像的URL,所以首先我将它们下载到服务器上,创建zip文件并下载它们。

       <?php 
       if(isset($_POST['createZip'])){
        $post = $_POST;   
        $file_folder = "ZipFIle"; // folder to load files
        //downloading on my server
            foreach($post['files'] as $file){
            $ch = curl_init($file);
            $fp = fopen($file_folder.basename($file), 'wb');
            curl_setopt($ch, CURLOPT_FILE, $fp);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_exec($ch);
            curl_close($ch);
            fclose($fp); 
        }
      if(extension_loaded('zip')){  // Checking ZIP extension is available
        if(isset($post['files']) and count($post['files']) > 0){  
         // Checking files are selected
          $zip = new ZipArchive();      // Load zip library 
          $zip_name = "ZipFIle.zip";      // Zip name
          if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE){  
          // Opening zip file to load files
            $error .=  "Sorry ZIP creation failed at this time";
          }
          $dir = new DirectoryIterator("ZipFIle"); 
          foreach ($dir as $fileinfo) {
            if (!$fileinfo->isDot()) {
                //var_dump($fileinfo->getFilename());
                $imgfile = $fileinfo->getFilename();
                foreach($post['files'] as $file){
                  if ( basename($file) ==  $imgfile) {
                    //get file and add it to zip
                    $zip->addFile($file_folder.$imgfile);// Adding files into zip
                  }
                }//foreach($post['files'] as $file)
              }//if
          }        
          $zip->close();
          if(file_exists($zip_name)){
            //echo $zip_name ;
            // push to download the zip
            header('Content-type: application/zip');
            header('Content-Disposition: attachment; filename="'.$zip_name.'"');
            readfile($zip_name);
            // remove zip file is exists in temp path
            unlink($zip_name);
            foreach ($dir as $fileInfo) {
                if(!$fileInfo->isDot()) {
                    //delete all files after creating zip
                    unlink($fileInfo->getPathname());
                }
            }//foreach for delete
          }else{echo "no zip";}
        }else
          $error .= "Please select file to zip";
      }else
        $error .= "You dont have ZIP extension";
    }
    ?>
Warning: fopen(ZipFIle/) [function.fopen]: failed to open stream: Is a directory in /home/my-server/download.php on line 9

Warning: curl_setopt(): supplied argument is not a valid File-Handle resource in /home/my-server/download.php on line 10

Warning: fclose(): supplied argument is not a valid stream resource in /home/my-server/download.php on line 14

Warning: Cannot modify header information - headers already sent by (output started at /home/my-server/download.php:9) in /home/my-server/download.php on line 44

Warning: Cannot modify header information - headers already sent by (output started at /home/my-server/download.php:9) in /home/my-server/download.php on line 45

好心,向导!

共有1个答案

靳高明
2023-03-14

这些消息都是服务器警告。浏览器不相关。

 类似资料:
  • 问题内容: 在我制作的html页面中,我尝试使用html和css使div可点击。在一些主要的浏览器(Chrome,Firefox,Opera,Safari)以及HTC手机中,该功能都可以完美运行,但是当我尝试在Iphone上对其进行测试时,我发现它根本无法正常工作。复选框本身甚至无法选择。 这是我的代码(除了在Iphone上工作): HTML: CSS: 因此,正如您所看到的,我使用的技术基本上只

  • 问题内容: 我尝试在Firefox 15上使用,即使它在其他版本的Firefox和其他浏览器(例如Chrome和Safari)上也无法使用。 当我使用Firefox的检查器查看属性时,将被删除并显示错误“无效的属性值”。MDN和caniuse表示Firefox 4及更高版本支持该功能! 怎么会有时性能喜欢和一些浏览器的工作和在其他无效? 免责声明 :这是所有问题的规范重复,可通过添加供应商前缀来完

  • 问题内容: 在iPhone / iPad / iPod上的Webkit中,点击元素时不会触发为标签的:active伪类指定样式。我该如何触发?示例代码: 问题答案: … 仅应用了一次,而不是每个按钮元素都可以修复页面上的所有按钮。另外,您可以使用这个名为’Fastclick’的小型JS库。它可以加快触摸设备上的点击事件,也可以解决此问题。

  • 问题内容: 这是我的代码 这段代码在IE8中工作正常,但是在Firefox和Chrome浏览器中却失败了。当我检查XHR对象时,它表示状态码为0。我检查了所有其他问题,没有一个问题可以帮助我识别问题。 让我知道,如果我在这段代码中做错了什么。如果$ .ajax有一些兼容性问题,请提出与其等效的建议。 更新: 我们在http://www.xml.com/pub/a/2005/12/21/json-d

  • 在我的php文件中,我有以下内容来创建一个带有FPDF库的PDF: 但是请求是响应这个,而不是打开一个保存对话框来保存我的PDF。 %PDF-1.3 3 0 obj<>endobj 4 0 obj<>stream x 3 R@2π35 W(çR qπw 3 t04多30 pispéz*[(hx·ääää+çó)·(j*dé7 w endstream endobj 1 0 obj /xobject<

  • 问题内容: 如何使元素位置固定在 移动浏览器(iOS和Android)中 ?元素仍在ios <5和android <4中使用以下代码滚动 问题答案: 在大多数的旧版本中不工作和。我已经在大多数移动浏览器中尝试了此修复程序,并且没有任何插件即可正常运行。 采用