使用php从给定的url下载apk文件到服务器

时间:2016-05-09 16:53:37

标签: php linux curl download

我想从我使用的远程服务器上的url下载apk文件

set_time_limit(0);
$file1 = fopen($destinationDir.$fileName, "w");
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_URL            => $url,
CURLOPT_BINARYTRANSFER => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FILE           => $file1,
CURLOPT_TIMEOUT        => 1000,
CURLOPT_USERAGENT      => 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT\
5.0)' ]);
$response = curl_exec($curl);
if($response === false) {
throw new \Exception('Curl error: ' . curl_error($curl));
}

但有时当文件下载时,它是0kb文件,有时文件大小为40 kb,而原始文件大小为2 MB。当我通过浏览器访问给定的链接时,它会被下载但不会使用php。请建议我任何替代或更正。 P.S我是初学者,我在大学项目中要求这个。提前谢谢

1 个答案:

答案 0 :(得分:0)

使用此代码从网址下载文件。

您只需将您的网址和路径传递到您要下载的位置即可。

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_VERBOSE, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_AUTOREFERER, false);
  curl_setopt($ch, CURLOPT_REFERER, "https://example.com");
  curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, true );
  $result = curl_exec($ch);
  curl_close($ch);

 // the following lines write the contents to a file in the same directory 
 (provided permissions etc)
 $output_filename = "folderame/filename";
 $fp = fopen($output_filename, 'w');
 fwrite($fp, $result);
 fclose($fp);
}

这对我来说很好。