Публикация файлов с использованием cURL с использованием PHP - PullRequest
1 голос
/ 15 августа 2011

У меня проблемы с отправкой файлов в API, созданный с использованием cURL.

Я могу публиковать небольшие изображения (например, 4 КБ), но при попытке прикрепить большое изображение я получаю следующую ошибку:

Ошибка скручивания: не удалось создать промежуточные данные

Ниже приведен код, который я использую для вызова cURL:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 100); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");

try {  
    switch($type) {
        case "GET":
            break;
        case "POST":
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
            break;
        case "PUT":
            $fh = fopen('php://memory', 'rw'); 
            $data = http_build_query($vars, '', '&');
            fwrite($fh, $data);  
            rewind($fh);  
            curl_setopt($ch, CURLOPT_INFILE, $fh);  
            curl_setopt($ch, CURLOPT_INFILESIZE, strlen($data));  
            curl_setopt($ch, CURLOPT_PUT, true);
            break;
        case "DELETE":
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
            break;  
        default:  
            throw new InvalidArgumentException('Current verb is an invalid REST verb.'); 
    }
} catch (InvalidArgumentException $e) {  
    curl_close($ch);  
    throw $e;  
} catch (Exception $e) {  
    curl_close($ch);  
    throw $e;
} 
$result = curl_exec($ch);
$info = curl_getinfo($ch);
if(curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
}

curl_close($ch);

Есть ли ограничение на размер файла для загрузкиизображение через cURL.

Ваша помощь будет оценена.

1 Ответ

0 голосов
/ 15 августа 2011

Возможно, вы используете ограничение, установленное на сервере.Apache имеет директиву LimitRequestBody, позволяющую администратору сервера ограничивать размеры загрузки.Подробнее об этом можно прочитать здесь: http://httpd.apache.org/docs/2.1/mod/core.html#limitrequestbody

Администраторы сервера могут также применять ограничения для служб Windows IIS, хотя и надежно, начиная с версии 6.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...