加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

curl put方式上传文件

发布时间:2020-12-13 23:45:41 所属栏目:Linux 来源:网络整理
导读:发送端 1 ? php 2 3 function curlPut( $destUrl , $sourceFileDir , $headerArr = array (), $timeout = 10 ) 4 { 5 $ch = curl_init(); // 初始化curl 6 curl_setopt( $ch ,CURLOPT_RETURNTRANSFER, true ); // 返回字符串,而不直接输出 7 curl_setopt( $c

发送端

 1 <?php
 2 
 3 function curlPut($destUrl,$sourceFileDir,$headerArr = array(),$timeout = 10)
 4 {
 5     $ch = curl_init(); //初始化curl
 6     curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //返回字符串,而不直接输出
 7     curl_setopt($ch,CURLOPT_URL,$destUrl); //设置put到的url
 8     curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArr);
 9     curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
10     curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); //不验证对等证书
11     curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0); //不检查服务器SSL证书
12 
13     curl_setopt($ch,CURLOPT_PUT,true); //设置为PUT请求
14     curl_setopt($ch,CURLOPT_INFILE,fopen($sourceFileDir,‘rb‘)); //设置资源句柄
15     curl_setopt($ch,CURLOPT_INFILESIZE,filesize($sourceFileDir));
16 
17     $response = curl_exec($ch);
18     if ($error = curl_error($ch))
19     {
20         $bkArr =  array(
21             ‘code‘ => 0,22             ‘msg‘ => $error,23         );
24     }
25     else
26     {
27         $bkArr =  array(
28             ‘code‘ => 1,29             ‘msg‘ => ‘ok‘,30             ‘resp‘ => $response,31         );
32     }
33 
34     curl_close($ch); // 关闭 cURL 释放资源
35 
36     return $bkArr;
37 }
38 
39 $destUrl = ‘http://www.songjm.com/http_put_save.php‘;
40 $sourceFileDir = ‘asset/pic.png‘;
41 $headerArr = array(
42     ‘filename:newname.png‘,43 );
44 
45 $bkJson = curlPut($destUrl,$headerArr);
46 $bkArr = json_decode($bkJson,true);
47 echo "<pre>";
48 print_r($bkArr);
49 die;

接收端

 1 <?php
 2 
 3 if ($_SERVER[‘REQUEST_METHOD‘] != ‘PUT‘)
 4 {
 5     $bkMsg = array(
 6         ‘code‘ => -1, 7         ‘msg‘ => ‘not put‘, 8     );
 9     echo json_encode($bkMsg);
10     exit();
11 }
12 
13 $filename = $_SERVER[‘HTTP_FILENAME‘];
14 
15 $fileSaveDir = ‘upload/‘;
16 $newFile = $fileSaveDir.$filename;
17 
18 $handleToSave = fopen($newFile,‘wb+‘); 
19 $handleSource = fopen(‘php://input‘,‘rb‘);
20 
21 while (!feof($handleSource))
22 {
23     fwrite($handleToSave,fread($handleSource,1024));
24 }
25 
26 fclose($handleToSave);
27 fclose($handleSource);
28 
29 $bkMsg = array(
30     ‘code‘ => 1,31     ‘msg‘ => ‘ok‘,32 );
33 echo json_encode($bkMsg);
34 exit();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读