Как загрузить видео с помощью put.re api (используя CURL) - PullRequest
0 голосов
/ 29 января 2020

Я хочу загрузить видео на put.re, провайдер хостинга файлов , используя php curl

Я попробовал этот код:

    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 docs, вы увидите, что нет ошибок для вывода. Вы можете проверить Api Docs здесь . На его сайте нет примеров.

$ err ничего не возвращает,
$ reponse возвращает сообщение: НЕТ файлов найдено.


Я думаю, что в API есть ошибка позвоните ...
Пожалуйста, помогите мне пройти через это.

Пожалуйста, обратите внимание, что я хочу загружать видео, а не изображения. put.re позволяет загружать файлы любого типа. Я пытался загрузить файлы размером менее 100 МБ (что является пределом)

1 Ответ

0 голосов
/ 29 января 2020

Можете ли вы поделиться более подробной информацией об ошибке, которую вы получаете? Например, я попробовал 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;
}
...