当前位置: 首页 > news >正文

API之 要求接口上传pdf 以 合同PDF的二进制数据,multpart方式上传

在这里插入图片描述

实现

	   //时间戳13位毫秒private function getMillisecond() {list($s1,$s2) = explode(' ',microtime());return (float)sprintf('%.0f',(floatval($s1) + floatval($s2)) * 1000);}// 组装参数private function gysscPost1($url,$data){// $data['timestamp'] = '1694402111964';$data['timestamp'] = $this->getMillisecond();$data['v'] = '1.0';$data['appKey'] = $this->appKey;$data['method'] = $data['method'];$data['token'] = $this->token;$data['format'] = 'json';$data['paramType'] = 'json';$contractBytes = $data['contractBytes'];   // 上传pdf的文件地址unset($data['contractBytes']);ksort($data);$data['sign'] = $sign_str;$res = $this->curl1('http://39.101.164.226:8073/openapi', $data,$contractBytes);$result = $this->decrypt($res);      //解密return $result;}public function curl1($url, $post,$contractBytes,$is_json = false,$aHeader=''){$ch = curl_init();curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_HEADER, false);curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);curl_setopt($ch, CURLOPT_URL, $url);// 重点是下面 传参$post['contractBytes']= curl_file_create($contractBytes, mime_content_type($contractBytes), time() . 'pdf');curl_setopt($ch, CURLOPT_POSTFIELDS, $post);curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data',$aHeader));// 返回结果$result = curl_exec($ch);if($result != false){curl_close($ch);return $result;} else {$error = curl_errno($ch);curl_close($ch);return "curl出错,错误码:$error";}}

相关文章:

  • MySQL -- DQL
  • 麻雀搜索优化算法MATLAB实现,SSA-BP网络
  • 开发仿抖音APP遇到的问题和解决方案
  • 记华为荣耀手机调试H5
  • 4D毫米波雷达和3D雷达、激光雷达全面对比
  • JVM对象创建与内存分配
  • String类常用方法总结
  • Spring依赖注入之@autowire注解详解
  • 拼多多官方开放平台接口app商品详情接口获取实时商品详情数据演示
  • 数据结构-快速排序“人红是非多”?看我见招拆招
  • uniapp+vue3使用pinia,安卓端报错白屏
  • 基于JSP的音乐网站的设计与实现【附源码】
  • 邦芒支招:利用自荐电话求职的七大技巧
  • 整套数字化招采平台安全防御体系
  • SQL优化——如何写出高效率SQL
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Angular 4.x 动态创建组件
  • co模块的前端实现
  • ES6 ...操作符
  • ES6系统学习----从Apollo Client看解构赋值
  • java小心机(3)| 浅析finalize()
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mysql 5.6 原生Online DDL解析
  • Terraform入门 - 1. 安装Terraform
  • Tornado学习笔记(1)
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 后端_MYSQL
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 力扣(LeetCode)56
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 前端_面试
  • 巧用 TypeScript (一)
  • 使用common-codec进行md5加密
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 怎么把视频里的音乐提取出来
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • #if 1...#endif
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (二)fiber的基本认识
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (四)汇编语言——简单程序
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET 使用 XPath 来读写 XML 文件
  • @private @protected @public
  • [ C++ ] STL---string类的使用指南
  • [ 蓝桥杯Web真题 ]-布局切换