我想从我使用的远程服务器上的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我是初学者,我在大学项目中要求这个。提前谢谢
答案 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);
}
这对我来说很好。