无法将已下载zip文件的服务器打开到具有file_put_contents的服务器

时间:2019-07-07 17:38:10

标签: php

我在使用file_put_contents()将zip文件从远程服务器下载到另一个服务器时遇到麻烦

这当前来自提供zip文件二进制数据的api代码:

header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    //header("Content-Type: application/zip");
    header("Content-Description: File Transfer");
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"".$update_filename."\"");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($update_path));
    ob_end_flush();
    @readfile($update_path);
    exit();

这是来自保存远程文件的服务器:

all curl request.....

$response = curl_exec($curl);
// some validation ....
// to simplify the process
file_put_contents($local_file, $response);

在这一点上创建了实际文件,如果我使用Windows或winrar打开它,确实可以很好地打开文件,但是当我使用ZipArchive时:

$file = '2019-07-07-update-1.0.4.9.zip';
        $zip = new ZipArchive;
        $zip->open($file);
        $zip->extractTo($directory);
        echo "<pre>";
        print_r(error_get_last()); // Says it's an invalid zip object or damaged file.
        die;

我已经尝试过对标头进行其他一些配置,但是同样的问题,无法使用php提取文件。

0 个答案:

没有答案