本文目录一览:
- php 把图片下载本地保存到指定目录中
- thinkphp用file_put_contents()保存远程图片到服务器
- PHP下载远程图片jpg 格式,
- php curl get 下载远程zip文件保存在本地例子
php 把图片下载本地保存到指定目录中
/*
*@$url string 远程图片地址
*@$dir string 目录,可选 ,默认当前目录(相对路径)
*@$filename string 新文件名,可选
*/
function GrabImage($url, $dir='', $filename=''){
if(empty($url)){
return false;
}
$ext = strrchr($url, '.');
if($ext != '.gif' && $ext != ".jpg" && $ext != ".bmp"){
echo "格式不支持!";
return false;
}
//为空就当前目录
if(empty($dir)) $dir = './';
$dir = realpath($dir);
//目录+文件
$filename = $dir . (empty($filename) ? '/'.time().$ext : '/'.$filename);
//开始捕捉
ob_start();
readfile($url);
$img = ob_get_contents();
ob_end_clean();
$size = strlen($img);
$fp2 = fopen($filename , "a");
fwrite($fp2, $img);
fclose($fp2);
return $filename;
}
//测试
GrabImage("此处网址/1.jpg", "as.gif");
// PS:目录存在,权限判断,自创建等自己应该知道!
// 个人喜欢绝对路径所以就那么写了
thinkphp用file_put_contents()保存远程图片到服务器
你在逗我,怎么可能直接用程序直接写入另一个服务器。 我的思路是(没有试验过)
- 转换为图片为二进制文件进行上传到另一个服务器进行处理保存
- 转换图片为base64 用curl请求服务器进行处理
- 模拟表单请求
PHP下载远程图片jpg 格式,
<?php
header("Content-type: application/octet-stream");
header("Accept-Ranges: bytes");
header("Accept-Length:".filesize($path));
header("Content-Disposition: attachment; filename=".basename($path));
readfile($path);
?>
php curl get 下载远程zip文件保存在本地例子
<?php
if($_POST['submit']){
$url = $_POST['url']; //取得提交过来的地址
$url = urldecode($url);
$fname = basename("$url"); //返回路径中的文件名部分 fetion_sms.zip
$str_name = pathinfo($fname); //以数组的形式返回文件路径的信息
$extname = strtolower($str_name['extension']); //把扩展名转换成小写
//$uptypes=explode(",",$forum_upload); //取得可以上传的文件格式
//$size=getFileSize($url);
$time = date("Ymd",time());
$upload_dir = "./upload/"; //上传的路径
$file_name = $time.rand(1000,9999).'.'.$fname;
$dir = $upload_dir.$file_name; //创建上传目录
//判断目录是否存在 不存在则创建
if(!file_exists($upload_dir)){
mkdir($upload_dir,0777,true);
}
$contents = curl_download($url,$dir);
if($contents){
echo "下载成功";
}else{
echo "下载失败";
}
}
function curl_download($url, $dir) {
$ch = curl_init($url);
$fp = fopen($dir, "wb");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
$res = curl_exec($ch);
curl_close($ch);
fclose($fp);
return $res;
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>远程下载文件</title>
</head>
<body>
<form name="upform" method="post" action="" enctype='multipart/form-data'>
<input name='url' type='text' size='20'/>
<input type='submit' name='submit' value='远程下载'/>
</form>
</body>
</html>