php下載遠程圖片,php獲取遠程文件

本文目錄一覽:

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

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199807.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-05 14:01
下一篇 2024-12-05 14:01

相關推薦

發表回復

登錄後才能評論