(转)php下载文件到本地

 

public function testDown()
	{
		$url = "https://www.xxxx.com/resume/5b5829d270ff3.doc";
		$save_dir = "e:/tmp/file/";
		$filename = "5b5829d270ff3.doc";
		$res = $this->getFile($url, $save_dir, $filename, 0); //0远程文件
		var_dump($res);

	}


	function getFile($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)) {
			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_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($save_dir . $filename, 'a');
		fwrite($fp2, $content);
		fclose($fp2);
		unset($content, $url);
		return array(
				'file_name' => $filename,
				'save_path' => $save_dir . $filename
		);
	}

 

你可能感兴趣的:(php下载)