私はcURLを使用してビルドしたAPIにファイルを投稿する際に問題が発生しています。PHPを使用してcURLを使用してファイルを投稿する
私は小さな画像を投稿することができます(4キロバイトと言う)が、私がしようとすると、大きな画像を添付したとき、私は次のエラーを取得する:
カール・エラー:
私が作るために使用していたコードをformpostデータを作成できませんでした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を使用して画像をアップロードする際に上限がありますか。
お手数をおかけします。
PHPのメモリ制限、32ビットシステム、2GBのファイル、オープンファイルの制限などを制限する...制限がたくさんあります。詳細がなければ、それ以上には答えられません。 '$ vars'には何がありますか? –
$ varsは私が投稿している変数なので、次のようになります: $ vars = array( "name" => $ name、 "image" => "@/tmp/image.jpg"); –
2GBのファイルをアップロードするつもりはありませんが。これは148KBのファイルで起こっています! –