php下载远程图片,php获取远程文件

发布时间:2023-01-07

本文目录一览:

  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 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>