php curl 传参文件

下面重点说一下 php curl 传参的文件的几种方法

先解释一下 aaa";filename="xxx
aaa 是对方要接收的参数
";filename=" 是固定格式
xxx 自己定义的名字,随意定义
要上传的文件资源在服务器本地
php 5.5之前
     'filename' => "@"."./hll.jpg", // 5.5之前 这个方法没有试过
    
 php 7.0
 $postBody   = [
		    'aaa' => curl_file_create("./hll.jpg",'image/jpeg',11),
		     'aaa";filename="xxx' => "./hll.jpg",
		    'aaa' => new \CURLFile("./hll.jpg","image/jpeg","filename"); // 使用CURLFile类
     ];
    
重点说一下 CURLFile 的参数也是可以使用通过 form表单提交的文件【$_FILES接收的参数】
	$fileinfo   = $_FILE['filename']; // 接收前端传过来的文件
	$postBody   = [
   			'aaa' => new \CURLFile($fileinfo['tmp_name'],$fileinfo['type'],$fileinfo['name']); // 使用CURLFile类
    ];
	
要上传的文件资源不在服务器本地
		$content    =  file_get_contents($url); // 获取远程的图片资源
        $postBody   = [
            'aaa";filename="xxx' => $content, // 远程文件的二进制
        ];
贴上代码
// 测试发送参数
public function test()
    {
        $url        = 'https://dss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2534506313,1688529724&fm=26&gp=0.jpg';
        $content    =  file_get_contents($url); // 获取远程的图片资源
        $requestUrl = 'xxx/accept';  // 请求的地址
        $fileinfo   = $_FILE['filename']; // 接收前端传过来的文件
        $postBody   = [
            'filename1";filename="filename1' => $content, // 远程文件的二进制
            'filename2' => "@"."./hll.jpg", // 5.5之前
            'filename3' => curl_file_create("./hll.jpg",'image/jpeg',11),// 5.5之后
            'filename4' => new \CURLFile($fileinfo['tmp_name'],$fileinfo['type'],$fileinfo['name']); // 使用CURLFile类 【参数是前端传输过来的】
            'filename5' => new \CURLFile("./hll.jpg",'image/jpeg',11); // 使用CURLFile类 【参数是本地文件】
            'filename6";filename="filename6' => "./hll.jpg", // 本地
            'uuid' => 111,
        ];
        $ch         = curl_init();
        curl_setopt($ch, CURLOPT_URL, $requestUrl);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postBody);
        $data = curl_exec($ch);
        $data = json_decode($data,1);
        curl_close($ch);
        return self::output(200, $data, '');
    }

// 接收参数
public function accept()
    {
        $data['file'] = $_FILES;
        $data['post'] = $_POST;
        echo json_encode($data,1);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值