PHPリモートアップロード画像及びファイル

1986 ワード

1.phpで環境を設定する必要がある.iniファイルにextension=php_を追加curl.dll(私がインストールしたapacheはD:ディスク私のphp.iniパスはD:xamppphp
2 apacheを再起動phpinfo()を見て、正常に構築されたかどうかを確認します!(apacheトップページの左側のメニューでphpinfo()を表示できます)
3.コード例:
下に2つのPHPファイルがあります.私のローカルテストではciフレームワークを使用しています.ビューを通じてファイルをアップロードし、PHP 1のrequest_を呼び出します.by_curl関数、$FILES関数はファイルの名前とパスを入力します
PHP 2つまりリモートサーバのphpファイルは、php 1が実行されるとcurlライブラリでPHP 2が実行されるので、実はPHP 2は別の場所だけを受信して保存すればよいのです
/**
	PHP 1(   php  )
	        file_url        、uri name      ,
	                  php            ,
	                   
	$file_uri = $_FILES ['filed'] ['name'];
	$file_url = $_FILES ['filed'] ['tmp_name']; 
**/ 
public function request_by_curl( $file_url,$file_uri ) 
{ 
	$curl = curl_init();   
	//      
	$data = array('filed'=>'@'.$file_url,'nam' =>$file_uri,);
	//         +    (      ) 
	//        ,,                                   
	curl_setopt($curl, CURLOPT_URL, "http://192.168.87.2/file/");
	//                          
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  
	curl_setopt($curl, CURLOPT_POST, true);  
	curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
	$result = curl_exec($curl);  
	curl_close($curl); /*  */ 
	echo json_decode($result); 
}
 
  
/*
PHP 2(   php  )
           php               curl       
*/
public function Fileload()
{ 
    if($_FILES)
    { 
        $filename = $_FILES['filed']['name']; 
        $tmpname = $_FILES['filed']['tmp_name']; 
        $url = dirname(__FILE__)."\\img\\";


    if( move_uploaded_file($tmpname,$url.$_POST['nam']) )
        { 
            echo json_encode('    ');
    }  
        else
        {
            $data = json_encode($_FILES);
            echo $data."    ";
         }
    }
}

付加的なスキル、socketやswooleに興味のある研究の下で、私も最近発見したばかりですが、これらを知る前にTCPプロトコル(protobufはデータとして伝送されている)を理解したほうがいいです.