本文目录一览:
- 1、php 把图片下载本地保存到指定目录中
- 2、thinkphp用file_put_contents()保存远程图片到服务器
- 3、PHP下载远程图片jpg 格式,
- 4、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
meta charset="utf-8" /
meta name="viewport" content="width=device-width, initial-scale=1"
title远程下载文件/title
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