1.file_put_contents,file_get_contents
$url = 'http://example.com/image.jpg'; $img = '/my/folder/flower.jpg'; //路径加新的文件名,也可以为相对路径 file_put_contents($img, file_get_contents($url));
备注:allow_url_fopen配置项需要为true
2.copy
copy('http://example.com/image.jpg', 'local/folder/flower.jpg');
3.curl
$ch = curl_init('http://example.com/image.jpg'); $fp = fopen('/my/folder/flower.jpg', 'wb'); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); fclose($fp);
4.加入调试信息
$img = ""; $img = file_get_contents($image); echo $img; //for debugging.. //for running.. if(!$img) die("no data fetched");
如果$img有数据,再写入
$result = file_put_contents($target_path,$img); if($result=== FALSE) die("Error writing data into $target_path"); else echo "$result bytes written to $target_path";
解析链接中的文件名及后缀
$url = 'http://www.example.com.cn/abc/de/fg.php?id=1'; $arr = parse_url($url); $file = basename($arr['path']); echo $file; //输出:fg.php
如果图片成功下载,但是发现大小为0,
检查file_get_contents图片路径是否为相对路径,字符串拼接出绝对路径即可