if (!function_exists('downloadFile')) {
function downloadFile($url, $save_dir = '', $filename = '', $type = 0)
{
if (trim($url) == '') {
return false;
}
if (trim($save_dir) == '') {
$save_dir = './';
}
if (0 !== strrpos($save_dir, '/')) {
$save_dir .= '/';
}
//创建保存目录
if (!file_exists($save_dir) && !mkdir($save_dir, 0777, true)) {
log_message('error', 'mkdir failed');
return false;
}
//获取远程文件所采用的方法
if ($type) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS,20);//最多允许跳转20次
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);//允许跟随协议
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$content = curl_exec($ch);
curl_close($ch);
} else {
ob_start();
readfile($url);
$content = ob_get_contents();
ob_end_clean();
}
if (empty($content)) {
log_message('error', 'data empty');
return false;
}
//echo $content;
$size = strlen($content);
$filename=str_replace(['/','\\','%',' '],'',$filename);
$result = file_put_contents($save_dir . $filename, $content);
if ($result <= 0) {
return false;
}
//文件大小
// $fp2 = @fopen($save_dir . $filename, 'a');
// fwrite($fp2, $content);
// fclose($fp2);
unset($content, $url);
return array(
'file_name' => $filename,
'save_path' => $save_dir . $filename,
'file_size' => $size
);
}
}