diff --git a/src/Curl/Curl.php b/src/Curl/Curl.php index 07eb77d..044e8a8 100644 --- a/src/Curl/Curl.php +++ b/src/Curl/Curl.php @@ -309,7 +309,7 @@ class Curl if (is_file($download_filename) && $filesize = filesize($download_filename)) { $first_byte_position = $filesize; $range = $first_byte_position . '-'; - $this->setOpt(CURLOPT_RANGE, $range); + $this->setRange($range); $this->fileHandle = fopen($download_filename, 'ab'); } else { $this->fileHandle = fopen($download_filename, 'wb'); @@ -326,7 +326,7 @@ class Curl }; } - $this->setOpt(CURLOPT_FILE, $this->fileHandle); + $this->setFile($this->fileHandle); $this->get($url); return ! $this->error; @@ -1123,6 +1123,17 @@ class Curl $this->setOpt(CURLOPT_PROXY, null); } + /** + * Set Range + * + * @access public + * @param $range + */ + public function setRange($range) + { + $this->setOpt(CURLOPT_RANGE, $range); + } + /** * Set Referer * @@ -1597,7 +1608,7 @@ class Curl // Reset CURLOPT_FILE with STDOUT to avoid: "curl_exec(): CURLOPT_FILE // resource has gone away, resetting to default". - $this->setOpt(CURLOPT_FILE, STDOUT); + $this->setFile(STDOUT); // Reset CURLOPT_RETURNTRANSFER to tell cURL to return subsequent // responses as the return value of curl_exec(). Without this, diff --git a/src/Curl/MultiCurl.php b/src/Curl/MultiCurl.php index 980dfa6..a9eca06 100644 --- a/src/Curl/MultiCurl.php +++ b/src/Curl/MultiCurl.php @@ -102,7 +102,7 @@ class MultiCurl if (is_file($download_filename) && $filesize = filesize($download_filename)) { $first_byte_position = $filesize; $range = $first_byte_position . '-'; - $curl->setOpt(CURLOPT_RANGE, $range); + $curl->setRange($range); $curl->fileHandle = fopen($download_filename, 'ab'); // Move the downloaded temporary file to the destination save path. @@ -122,7 +122,7 @@ class MultiCurl } } - $curl->setOpt(CURLOPT_FILE, $curl->fileHandle); + $curl->setFile($curl->fileHandle); $curl->setOpt(CURLOPT_CUSTOMREQUEST, 'GET'); $curl->setOpt(CURLOPT_HTTPGET, true); return $curl; @@ -702,6 +702,17 @@ class MultiCurl } } + /** + * Set Range + * + * @access public + * @param $range + */ + public function setRange($range) + { + $this->setOpt(CURLOPT_RANGE, $range); + } + /** * Set Referer * diff --git a/tests/PHPCurlClass/PHPCurlClassTest.php b/tests/PHPCurlClass/PHPCurlClassTest.php index 2620d0a..69aab8e 100644 --- a/tests/PHPCurlClass/PHPCurlClassTest.php +++ b/tests/PHPCurlClass/PHPCurlClassTest.php @@ -3886,7 +3886,16 @@ class CurlTest extends \PHPUnit\Framework\TestCase $file = STDOUT; $curl = new Curl(); - $curl->setFile(STDOUT); + $curl->setFile($file); $this->assertEquals($file, $curl->getOpt(CURLOPT_FILE)); } + + public function testSetRange() + { + $range = '1000-'; + + $curl = new Curl(); + $curl->setRange($range); + $this->assertEquals($range, $curl->getOpt(CURLOPT_RANGE)); + } } diff --git a/tests/PHPCurlClass/PHPMultiCurlClassTest.php b/tests/PHPCurlClass/PHPMultiCurlClassTest.php index bf66767..1d59d36 100644 --- a/tests/PHPCurlClass/PHPMultiCurlClassTest.php +++ b/tests/PHPCurlClass/PHPMultiCurlClassTest.php @@ -3397,7 +3397,17 @@ class MultiCurlTest extends \PHPUnit\Framework\TestCase $multi_curl = new MultiCurl(); $this->assertNull($multi_curl->getOpt(CURLOPT_FILE)); - $multi_curl->setFile(STDOUT); + $multi_curl->setFile($file); $this->assertEquals($file, $multi_curl->getOpt(CURLOPT_FILE)); } + + public function testSetRange() + { + $range = '1000-'; + + $multi_curl = new MultiCurl(); + $this->assertNull($multi_curl->getOpt(CURLOPT_RANGE)); + $multi_curl->setRange($range); + $this->assertEquals($range, $multi_curl->getOpt(CURLOPT_RANGE)); + } }