【问题标题】:How to solve cUrl corrupting file during download下载过程中如何解决 cUrl 损坏文件
【发布时间】:2014-01-22 14:01:46
【问题描述】:

我真的非常需要帮助来解决我遇到的这个问题:

使用脚本:

<?php
    $curl = curl_init();
    $fp = fopen("somefile.zip", "w");
    curl_setopt ($curl, CURLOPT_URL, "http://website.com/test.zip");
    curl_setopt($curl, CURLOPT_FILE, $fp);
    curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_exec ($curl);
    curl_close ($curl);

我之前问过,似乎没有人知道我如何解决这个问题……如果有人能告诉我为什么会这样的话。是文件大小,二进制传输等吗?我可以处理!

文件 ZIP 文件下载并创建 somefile.zip 但其中的 XML 文件部分损坏。

示例:

K#Teº22)dVTð¼ÜvØ
rÏ*HIê±dE*¬òPÜÊâR}ÝbJÉÂX:Î@z|Eª2Ér  tk­2UÄOK¼É,·,­Ûs¦ê1Z°VÝk6Ù«ËGÝw©5Æ]ÛQcq¥¼½ØïÒÐ]êÈy¨ð¶Çùûü]ÛßþW¤ùâÝÀw|~§ïúÁ¸ÛHBq®*YtrÛÕiî$   /ñ¥n?è¶;_ò
É¡ä ç&ýOr óß)yÿ¤$+`~TÙAófHU ¢SÝvW¶¦xA5Å×¶Ãrå<8^ÐË4w­ qz Ø«<Ñ"*ººÝ?èO^;ÃQûÉOÏÀ¾?ìw|Õ±¥©3w©Ýr£ ÃÊÀ ¿^Á^UÛLß_ôÜÎh4îÖWcíF^8¾ö÷ؼ¾¿`âX3Ûú^{  À<.Æ¡(±1f¢.¸®k/ìÝeÓçê'PAnÓõ¸K`TeQ÷b|'¥Ñ)1ÓãnsÞèàÎZ|ê*+kuw×cªëÇ:§$¤ã¸Î1ü±Úh6ÕÀQ¦©D4Âp4b{Èo¾
,4"R

【问题讨论】:

    标签: php curl zip corrupt-data


    【解决方案1】:

    您可以将 CURLOPT_HEADER 设置为 0 并重试吗?

    编辑:

    或者试试这个:

    $url  = 'http://website.com/test.zip';
    $path = 'somefile.zip';
    
    
    $ch = curl_init($url);
    if($ch === false)
    {
        die('Failed to create curl handle');
    }
    
    $fp = fopen($path, 'w');
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    
    $data = curl_exec($ch);
    
    curl_close($ch);
    fclose($fp);
    

    【讨论】:

    • 在使用 Zip PHP 类解压 zip-archive 时遇到问题。 Zip-archive 是在启用 CURLOPT_FILE 的情况下使用 curl 下载的。将 CURLOPT_HEADER 设置为 0 (false) 就可以了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2015-07-14
    • 2015-07-16
    • 2017-12-04
    • 2019-01-28
    • 1970-01-01
    • 2017-04-21
    相关资源
    最近更新 更多