Curl POST上传文件请求返回false

时间:2018-06-07 19:49:47

标签: php curl post php-curl

我正在尝试使用gfycat API创建一个gfycat,通过curl使用php上传文件但是它不起作用而且var_dump($ response)给了我bool(false)。

我的代码:

class Client < ActiveRecord::Base
    has_many :check_ins, -> { order(week: :asc) }, dependent: :destroy
    has_many :weigh_ins, :through => :check_ins, dependent: :destroy
end

class CheckIn < ActiveRecord::Base
    belongs_to :client
    has_one :weigh_in, dependent: :destroy
end

非常感谢帮助。感谢。

2 个答案:

答案 0 :(得分:1)

顺便说一句,我得到了这个:

$file_path = "ABSOLUTE_FILE_PATH".$newfilename;
$cFile = curl_file_create(realpath($file_path));
$data = array(
"key" => $newfilename,
"file" => $cFile,
);
$target_url = "https://filedrop.gfycat.com";

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: multipart/form-data"
));

$response = curl_exec($ch);

curl_close($ch);

答案 1 :(得分:0)

调试curl代码时,启用CURLOPT_VERBOSE并检查stderr日志通常是个好主意。此外,如果curl_exec重新加入bool(false),则表示传输存在问题,您可以使用curl_error()函数来获取错误消息。最后,不要手动设置标题require(<module>),curl会为你设置标题,而且与你不同,curl在这样做时不会犯任何错别字,更糟糕的是,你冒着覆盖的风险/删除标题的边界参数。

"Content-Type: multipart/form-data"

现在,如果出现错误,它应该会在异常错误日志中为您提供有关curl错误的详细日志。