入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

php实现远程网络文件下载到服务器指定目录(方法一)

创建时间:2016-10-20 投稿人: 浏览次数:4842

php实现远程网络文件下载到服务器指定目录(方法一)

<?php
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();
    }
	//echo $content;
    $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,
		"file_size" => $size
    );
}
//$url = "http://www.baidu.com/img/baidu_jgylogo3.gif";
//$url="http://192.168.1.212/aaa.doc";
$url="http://192.168.31.1/".urlencode(iconv("GB2312","UTF-8","测试.doc"));
$save_dir = "down/";
//$filename = "baidu_jgylog1o31.gif";
$filename ="学习1.doc";
$res = getFile($url, $save_dir, $filename,1);//0  1 都是好使的
var_dump($res);
?>

备注说明:

如果远程文件的命名是英文的话可以直接下载就可以了,如果远程文件名是中文的,必须转换成utf-8的编码格式,然后再urlencode转换成url加密的格式,

php的代码程序的编码是gb2312。

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。