代码如下
/**
* @param $url 下载地址
* @param string $publicDir 文件存放地址
* @param string $filename 文件名称
* @param int $type
* @return array|bool
*/
public function getDownload($url, $publicDir = '', $fileName = '', $type = 0) {
//获取文件路径
$newOneDir = substr($publicDir,0,strrpos($publicDir,"/"));
if (trim($url) == '') {
return false;
}
//检验访问url是否有效
$array = get_headers($url,1);
if(!preg_match('/200/',$array[0])){
return false;
}
if (trim($publicDir) == '') {
return false;
}
//创建保存目录
if (!file_exists($newOneDir) && !mkdir($newOneDir, 0777, true)) {
return false;
}
//原来文件存在则删除
if (file_exists($save_dir)) {
unlink($save_dir);
}
//获取远程文件所采用的方法
if ($type) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
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();
}
$size = strlen($content);
//文件大小
$fp2 = @fopen($publicDir, 'a');
fwrite($fp2, $content);
fclose($fp2);
unset($content, $url);
return array(
'file_name' => $fileName,
'save_path' => $publicDir,
'file_size' => $size
);
}
转自大海技术博客:http://www.ypyunedu.com/article/119