簡體   English   中英

CURL創建的.zip無法打開

[英]CURL created .zip won't open

我正在嘗試從另一台服務器的資產中創建一個.zip文件,如下所示:

$url  = 'http://thindery.com/jsfiddle/butterfly.jpg';
$path = 'butterfly.zip'; 
$fp = fopen($path, 'w'); 
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp); 
$data = curl_exec($ch); 
curl_close($ch);
fclose($fp);

運行腳本后,我在服務器上看到.zip。 當我下載.zip並嘗試在Windows計算機上打開它時,出現此錯誤:

Windows無法打開該文件夾壓縮(壓縮)的文件夾'butterfly.zip'無效。

有人知道為什么它無法打開嗎?

UPDATE

我在這里了解我的錯誤。 我可以看到我的原始代碼是如何僅將.jpg保存為.zip,而不是將.jpg放在已存檔(壓縮)的文件夾中。

您正在下載JPEG文件(.jpg),並將其另存為.zip文件。 自然地,如果您嘗試將此ZIP文件作為存檔打開,則它將失敗,因為該文件的內容是圖像而不是存檔。 如果要實際創建一個包含此jpg圖像的zip存檔,則需要下載該圖像,然后使用ZIP系列功能對其進行壓縮。

您真的想這樣做:

// if you have fopen wrappers forget about curl. way to complex for something simple
$jpg = file_get_contents('http://thindery.com/jsfiddle/butterfly.jpg');
$jpgName ='butterfly.jpg';

//use the built in zip functionality in php
$zip = new ZipArchive();
if ($zip->open("c:\temp\$jpgName.zip" , ZIPARCHIVE::CREATE)!==TRUE) {
    exit("cannot open c:\temp\$jpgName.zip\n");
}
$zip->addFromString($jpgName, $jpg);
$zip->close();

如果我的理解正確,則您正在嘗試將.jpeg文件打開為.zip。 嘗試使用圖像查看器打開此zip文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM