PHP 远程上传图片以及文件

1.需要配置环境在 php.ini 文件里面加入 extension=php_curl.dll(我安装的apache在D:盘我的php.ini路径是在D:\xampp\php\

2重启apache  看下phpinfo()进行查看是否配建成功!(可以在apache首页左边菜单查看phpinfo()

3.代码实例:

下面有两个PHP文件我的在本地测试的用的是ci框架,通过视图上传文件然后调用PHP1的request_by_curl函数,通过$_FILES 函数把文件的名称以及路径传入

PHP 2也就是远程服务器的php文件因为在php1执行的时候就就会通过curl库执行PHP2,,其实PHP2只接收并存放另外一个地方就可以了

/**
	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是做为数据进行传输的)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值