Index.php
4.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?php
namespace app\index\controller;
use app\common\controller\Frontend;
class Index extends Frontend
{
protected $noNeedLogin = '*';
protected $noNeedRight = '*';
protected $layout = '';
public function index()
{
$param = [
'image_id' => 'IMG_7072_res1',
'timestamp' => '2019-08-19 16:23:13',
];
$key = 'gIt66BXV8v6n51m1JsWv';
$signa = '10F5AC11BE9C02ADB0E839DCF231E09D';
$stringA = $this->ASCII($param);
$stringSignTemp = $stringA.'&key='.$key;
$sign = strtoupper(md5($stringSignTemp));
// echo $sign.'<br/>';
// echo $signa;
$param['key'] = $key;
$param['sign'] = $sign;
// $param['files'] = file_get_contents($files);
$url = 'http://49.234.158.29:80/get_img_info/';
$files = './assets/img/test_shuguan.png';
$file = realpath(ltrim($files, '@'));
$item = new \CURLFile($file);
// $item->setPostFilename('test_shuguan.png');
$param['files'] = $item;
var_dump($this->post($url,$param));
return $this->view->fetch();
}
public function post($url, $data) {
//初使化init方法
$ch = curl_init();
//指定URL
curl_setopt($ch, CURLOPT_URL, $url);
//设定请求后返回结果
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//声明使用POST方式来进行发送
curl_setopt($ch, CURLOPT_POST, 1);
//发送什么数据呢
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//忽略证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//忽略header头信息
curl_setopt($ch, CURLOPT_HEADER, 0);
//设置超时时间
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
//发送请求
$output = curl_exec($ch);
//关闭curl
curl_close($ch);
//返回数据
return $output;
}
public function http_post_buildData($url,$param){
#手工组包
$data = '';
$id = uniqid();
$this->buildData_fun($param,$id,$data);
$data .= "--".$id . "--";
#手工组包
// echo $data;
$ch = curl_init();//初始化
curl_setopt($ch,CURLOPT_URL,$url);//设置URL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//设置允许https访问。忽略证书错误
curl_setopt($ch,CURLOPT_POST,1);//设置get或者post
curl_setopt($ch,CURLOPT_HTTPHEADER,[
'Expect: ',//PHP的坑 设置POST不发送 HTTP/1.1 100 Continue
"Content-Type: multipart/form-data; boundary=".$id,
"Content-Length: " . strlen($data)
]);//设置协议附加头head
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//提交POST内容
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//在执行curl_exec返回结果
$ret=curl_exec($ch);//执行
curl_close($ch);
return $ret;
}
public function buildData_fun($param,$id,&$data,&$path='',$iii=0){
if(isset($param['filename'])){
#正常时是这样传送file文件的
#$file = curl_file_create(ROOT_PATH . '/public/154106488401000050.pdf',"application/octet-stream");
$data .= "--".$id . "\r\n"
. 'Content-Disposition: form-data; name="'. $path.'"; filename="' . $param['filename'] . '"' . "\r\n"
. 'Content-Type: application/octet-stream'."\r\n\r\n";
$data .= $param['files'] . "\r\n";
return ;
}
if(is_array($param) && $path != ''){
$data .= "--" . $id . "\r\n". 'Content-Disposition: form-data; name="' .$path . "\"\r\n\r\n". $content . "\r\n";
}
foreach ($param as $name => $content) {
if($path == ''){
$path1 = $name;
}else{
$path1 = $path."[".$name."]";
}
if(is_array($content)) {
$this->buildData_fun($content,$id,$data,$path1);
} else{
$data .= "--" . $id . "\r\n"
. 'Content-Disposition: form-data; name="' .$path1 . "\"\r\n\r\n"
. $content . "\r\n";
}
}
return ;
}
//自定义ascii排序
public function ASCII($params = array()){
if(!empty($params)){
$p = ksort($params);
if($p){
$str = '';
foreach ($params as $k=>$val){
$str .= $k .'=' . $val . '&';
}
$strs = rtrim($str, '&');
return $strs;
}
}
return '参数错误';
}
public function news()
{
$newslist = [];
return jsonp(['newslist' => $newslist, 'new' => count($newslist), 'url' => 'https://www.fastadmin.net?ref=news']);
}
}