您的位置:首页 > 编程语言 > PHP开发

PHP 远程上传图片以及文件

2015-04-30 13:54 316 查看
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是做为数据进行传输的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息