本文目錄一覽:
- 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
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199807.html