PHP curl put方式上传文件

Posted rxbook

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP curl put方式上传文件相关的知识,希望对你有一定的参考价值。

发送端:

<?php

function curlPut($destUrl, $sourceFileDir, $headerArr = array(), $timeout = 10)

    $ch = curl_init(); //初始化curl
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而不直接输出
    curl_setopt($ch, CURLOPT_URL, $destUrl); //设置put到的url
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArr);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不验证对等证书
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //不检查服务器SSL证书

    curl_setopt($ch, CURLOPT_PUT, true); //设置为PUT请求
    curl_setopt($ch, CURLOPT_INFILE, fopen($sourceFileDir, rb)); //设置资源句柄
    curl_setopt($ch, CURLOPT_INFILESIZE, filesize($sourceFileDir));

    $response = curl_exec($ch);
    if ($error = curl_error($ch))
    
        $bkArr =  array(
            code => 0,
            msg => $error,
        );
    
    else
    
        $bkArr =  array(
            code => 1,
            msg => ok,
            resp => $response,
        );
    

    curl_close($ch); // 关闭 cURL 释放资源

    return $bkArr;


$destUrl = http://www.songjm.com/http_put_save.php;
$sourceFileDir = asset/pic.png;
$headerArr = array(
    filename:newname.png,
);

$bkJson = curlPut($destUrl, $sourceFileDir, $headerArr);
$bkArr = json_decode($bkJson, true);
echo "<pre>";
print_r($bkArr);
die;

接收端:

<?php

if ($_SERVER[REQUEST_METHOD] != PUT)

    $bkMsg = array(
        code => -1,
        msg => not put,
    );
    echo json_encode($bkMsg);
    exit();


$filename = $_SERVER[HTTP_FILENAME];

$fileSaveDir = upload/;
$newFile = $fileSaveDir.$filename;

$handleToSave = fopen($newFile,wb+); 
$handleSource = fopen(php://input,rb);

while (!feof($handleSource))

    fwrite($handleToSave, fread($handleSource, 1024));


fclose($handleToSave);
fclose($handleSource);

$bkMsg = array(
    code => 1,
    msg => ok,
);
echo json_encode($bkMsg);
exit();

转自 https://www.cnblogs.com/songjianming/archive/2019/06/23/11072958.html

以上是关于PHP curl put方式上传文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 API PUT 请求上传文件

PHP使用curl请求实现post方式上传图片文件功能示例

如何通过 PHP 使用 curl 上传文件 [关闭]

PHP如何通过CURL上传文件

java里怎么使用curl命令上传文件

使用 PHP cURL 将文件上传到 Google 签名 URL