本文目錄一覽:
- 1、php curl get 下載遠程zip文件保存在本地例子
- 2、通過PHP實現下載遠程指定鏈接js並根據命名規則保存在本地伺服器中
- 3、thinkphp用file_put_contents()保存遠程圖片到伺服器
- 4、php保存遠程文件到文件夾
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
通過PHP實現下載遠程指定鏈接js並根據命名規則保存在本地伺服器中
$file = date(‘YmdHis’).”.js”; //文件保存路徑
$jsCon = file_get_contents(“”); //獲取遠程文件內容
file_put_contents($file, $jsCon); //寫入到本地文件
thinkphp用file_put_contents()保存遠程圖片到伺服器
你在逗我,怎麼可能直接用程序直接寫入另一個伺服器。
我的思路是(沒有試驗過)
轉換為圖片為二進位文件進行上傳到另一個伺服器進行處理保存
轉換圖片為base64 用curl請求伺服器進行處理
模擬表單請求
php保存遠程文件到文件夾
具體看步驟吧:
function getFile($url,$save_dir=”,$filename=”,$type=0){
if(trim($url)==”){
return false;
}
if(trim($save_dir)==”){
$save_dir=’./’;
}
if(0!==strrpos($save_dir,’/’)){
$save_dir.=’/’;
}
//創建保存目錄
if(!file_exists($save_dir)!mkdir($save_dir,0777,true)){
return false;
}
//獲取遠程文件所採用的方法
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$content=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$content=ob_get_contents();
ob_end_clean();
}
$size=strlen($content);
//文件大小
$fp2=@fopen($save_dir.$filename,’a’);
fwrite($fp2,$content);
fclose($fp2);
unset($content,$url);
return array(‘file_name’=$filename,’save_path’=$save_dir.$filename);
}
getFile($url,$save_dir,$filename,1)//調用
原創文章,作者:AVLC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/142695.html