J'ai des problèmes pour poster des fichiers sur une API que j'ai créée en utilisant cURL.Publication de fichiers à l'aide de cURL en utilisant PHP
Je peux poster des petites images (par exemple 4Ko) mais quand je tente de joindre une grande image que je reçois l'erreur suivante:
erreur Curl: failed création de données formpost
Le code que je utilise pour faire l'appel cURL est ci-dessous:
$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);
y at-il un plafond sur la taille du fichier pour le téléchargement d'une image par cURL.
Votre aide serait appréciée.
Limite de mémoire de PHP, système 32 bits vous limitant aux fichiers 2gig, limite de fichiers ouverts, etc ... il y a beaucoup de limites. Sans plus de détails, je ne peux pas répondre mieux que ça. Qu'y a-t-il dans '$ vars'? –
$ vars est les variables que je publie donc ressemblerait à ceci: $ vars = array ("nom" => $ name, "image" => "@/tmp/image.jpg"); –
Bien que je ne cherche pas à télécharger des fichiers de 2 Go. Cela arrive avec un fichier de 148 Ko! –