php curl 发送pdf文件,PHP使用Curl向第三方接口发送文件信息

业务需要用到自己服务器请求别人服务器传输文件,找了很久没有找到相关文案。最后一个朋友指点给我说了,自己当做个记录吧。

1.打印本地文件信息

Array

(

[file] => Array

(

[name] => 测试文件.xls //文件名

[type] => application/vnd.ms-excel //文件类型

[tmp_name] => C:\Windows\phpBE4B.tmp //文件临时路劲

[error] => 0 //文件错误码

[size] => 20480 //文件大小

)

)

2.提取请求第三方接口需要用到的参数

$file = $_FILES['file']; //文件信息

$filename = $file['name']; //本地文件名

$tmpFile = $file['tmp_name']; //临时文件名

$fileType = $file['type']; //文件类型

3.请求开始 以下为我请求第三方接口的方法。

注:有其他参数可以在data加上对应的键值对即可

/**

* @param $url 请求地址

* @param $filename 文件名

* @param $path 文件临时路劲

* @param string $type 文件类型

* @return mixed

*/

function postUploadFile($url,$filename,$path,$type = 'text/plain')

{

//php 5.5以上的用法

if (class_exists('\CURLFile')) {

$data = array(

'file' => new \CURLFile(realpath($path), $type, $filename),

);

} else {

//5.5以下会走到这步

$data = array(

'file'=>'@'.realpath($path).";type=".$type.";filename=".$filename,

);

}

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, true );

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_HEADER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$return_data = curl_exec($ch);

curl_close($ch);

return $return_data;

}

4.请求测试~如下

$file = $_FILES['file']; //文件信息

$filename = $file['name']; //本地文件名

$tmpFile = $file['tmp_name']; //临时文件名

$fileType = $file['type']; //文件类型

$url = "https://xxx.xxx.com/index/test/";

$this->postUploadFile($url, $filename, $tmpFile, $fileType );

第三方服务器返回值:

{

"post": { //POST额外参数

"by": "by 人山又人海"

},

"file": { //FILE信息

"file": {

"name": "测试文件.xls",

"type": "application/vnd.ms-excel",

"tmp_name": "/tmp/phpuNYXpo",

"error": 0,

"size": 20480

}

}

}

至此大功告成~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值