php使用curl函数往服务器put文件
博客专区 > 块块 的博客 > 博客详情
php使用curl函数往服务器put文件
块块 发表于1年前
php使用curl函数往服务器put文件
  • 发表于 1年前
  • 阅读 40
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 最近做一个项目,服务器端只支持put方式接收文件,遇到了各种问题(用户名密码验证、url里面特殊字符转码、url跳转、centent-length问题、不使用@符号传文件...),网上搜了很多无现成案例,现把最终实现记录下。

       $headers = array(
            "Expect: 100-continue",
            "Authorization: Basic " . base64_encode("{$user}:{$password}"),
        );
        $url = "http://{$host}:{$port}/path?var1=value1%26var2=value2";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_TIMEOUT, 600); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//把结果返回给变量
        curl_setopt($ch, CURLOPT_VERBOSE, '1');//输出debug信息
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//支持跳转
        curl_setopt($ch, CURLOPT_MAXREDIRS, 5);//最多跳转次数
        curl_setopt($ch, CURLOPT_URL, $url );
        curl_setopt($ch, CURLOPT_PUT, true );//提交方式
        $fp = fopen($file, 'r');
        $len = filesize($file);
        curl_setopt($ch, CURLOPT_INFILE, $fp );//设置上传文件的FILE指针
        curl_setopt($ch, CURLOPT_INFILESIZE, $len );//设置上传文件的大小

        $out = curl_exec($ch);
        $errno = curl_errno($ch);
        fclose($fp);
        curl_close($ch);

标签: PHP curl HTTP put
共有 人打赏支持
块块
粉丝 8
博文 37
码字总数 6975
×
块块
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: