【问题标题】:How to upload video using put.re api (using CURL)如何使用 put.re api 上传视频(使用 CURL)
【发布时间】:2020-05-14 15:51:35
【问题描述】:

我想使用 php curl 将视频上传到put.re, a file hosting provider

我试过这段代码:

    foreach ($_FILES['uploadvid']['tmp_name'] as $index => $fileTmpName) {
    $fileName =  $_FILES['uploadvid']['name'];
    $size = $_FILES['uploadvid']['size'];
        $handle = fopen($fileTmpName, "r");
        $data = fread($handle, filesize($fileTmpName));
        $curl = curl_init();
                curl_setopt_array($curl, array(
        CURLOPT_SSL_VERIFYHOST => 0,
        CURLOPT_SSL_VERIFYPEER => 0,
        CURLOPT_URL => "https://api.put.re/upload",
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => array( 'file' => @ $data),
        ));
        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl);
        $pms = json_decode($response, true);
        $vidurl = $pms['data']['link'];
    if ($vidurl!="") {
        echo 'Success';
    } else {
        echo 'Problem';
        echo $err;
echo $response;
    }
}

但是这个回声问题。 如果您检查 api 文档,您将看到没有错误输出。 您可以查看The Api Docs here。它的网站上没有显示示例。

$err 什么都不返回,
$reponse 返回一条消息:未找到文件。


我认为 API 调用有错误...
请帮我解决这个问题。

请注意,我要上传视频,而不是图片。 put.re 允许上传任何类型的文件。我尝试上传小于 100mb 的文件(这是一个限制)

【问题讨论】:

  • 错误是什么?
  • 请查看更新后的问题
  • $response 长什么样子?
  • @AlfredBez 我在我的问题中添加了它

标签: php api curl php-curl


【解决方案1】:

您能否分享有关您遇到的错误的更多详细信息?例如,我用下面的代码尝试了 api,并得到了显示上传已禁用的响应。

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.put.re/upload",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example.png\"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => array(
    "Accept: */*",
    "Accept-Encoding: gzip, deflate",
    "Cache-Control: no-cache",
    "Connection: keep-alive",
    "Content-Length: 20895",
    "Content-Type: application/x-www-form-urlencoded",
    "Host: api.put.re",
    "User-Agent: PostmanRuntime/7.20.1",
    "cache-control: no-cache",
    "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

【讨论】:

  • 请查看更新后的问题
  • @ALLTHINGSREMAINHERE 你能分享一下 curl_error 的输出吗?
  • @TarkFiliz 我添加了,如果无法检索到 URL,它将回显问题。这就是它显示为输出的内容。
猜你喜欢
  • 2012-10-27
  • 1970-01-01
  • 2016-01-12
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 2019-03-15
  • 2019-09-19
  • 2019-12-09
相关资源
最近更新 更多