cURL未返回响应且未发送帖子数据

时间:2015-12-22 18:50:25

标签: php curl

所以我正在研究一个我再次遇到的问题而且仍然令人沮丧。我想要做的就是使用cURL请求将文件上传到远程位置,无论我尝试任何类型的研究和示例,我都没有成功。我将开始发布每一段代码并给出一个小解释,针对每个代码的具体问题。

这是我的curl_handler:

curlUploadHandler.php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2");
curl_setopt($ch, CURLOPT_POST, true);

$post_array = array(
    "file" => "@".$_FILES['doc']['tmp_name'][$i],
    "upload" => "Upload",
    "type" => $type
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);

$r = curl_exec($ch);
print_r($r);
curl_close($ch);

上面的代码是我执行卷曲处理的代码部分,它的组织,订购或其他方面有问题,但我无法弄清楚是什么。

upload.php的

if(isset($_POST['upload']) && $_SERVER['REMOTE_ADDR'] == $addr){
    if(!empty($_FILES['file'])){
        $type = $_POST['type'];
        $directory = "/var/www/assets/$type/";
        if($_FILES['file']['error'] > 0){
            $response['errors'] = true;
            $response['error'] = $_FILES['file']['error'];
        }else{
            if(!move_uploaded_file($_FILES['file']['tmp_name'], $directory.$_FILES['file']['name'])){
                $response['errors'] = true;
                $response['error'] = 9;
            }else{
                $response['errors'] = false;
            }
        }
    }else{
        $response['errors'] = true;
        $response['error'] = 9;
    }
}else{
    $response['errors'] = true;
    $response['error'] = 9;
}

这是远程端的上传处理程序。现在有趣的是,当我尝试从curlUploadHandler.php发送数据时,我会得到成功上传的文件,但这是因为没有数据发送到upload.php。无论我尝试什么,我都会得到upload.php的零响应,我已经做了太多不同的方式,一遍又一遍,并且没有成功。有人可以帮我找一个解决方案吗?

我事先感谢大家的耐心和帮助。

更新

当我从@ file移除$post_array符号时,它似乎有效,但它不会作为文件发送,所以现在我真的很困惑,因为每个例子表明@符号有效,而且它失败了!

如果我运行curl_getinfo($ch);,如果给我这一系列信息:

array(22) {
  ["url"]=>
  string(46) "http://portal.hoovestol.local/upload/index.php"
  ["content_type"]=>
  NULL
  ["http_code"]=>
  int(0)
  ["header_size"]=>
  int(0)
  ["request_size"]=>
  int(0)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.063)
  ["namelookup_time"]=>
  float(0)
  ["connect_time"]=>
  float(0.063)
  ["pretransfer_time"]=>
  float(0)
  ["size_upload"]=>
  float(0)
  ["size_download"]=>
  float(0)
  ["speed_download"]=>
  float(0)
  ["speed_upload"]=>
  float(0)
  ["download_content_length"]=>
  float(-1)
  ["upload_content_length"]=>
  float(-1)
  ["starttransfer_time"]=>
  float(0)
  ["redirect_time"]=>
  float(0)
  ["certinfo"]=>
  array(0) {
  }
  ["redirect_url"]=>
  string(0) ""
}

从它的外观来看,脚本实际上从未到达我试图登陆的目录。

0 个答案:

没有答案