2017-07-31 11 views
-2

大きなPDFファイル(42MB)を送ろうとしたときに問題が発生しました。ファイルの取得にAPI制限がありますか? マイコード:ファイルの取得にAPI制限がありますか?

$filename_pdf = $_SERVER['DOCUMENT_ROOT'] . '/test/test_pdf_2.pdf'; 

$fh_res = fopen($filename_pdf, 'r'); 

$login = '******'; 
$password = '*********'; 
$url = 'http://do.convertapi.com/Pdf2Image'; 

// Create a CURLFile object 
$cfile = new CURLFile($filename_pdf, 'application/pdf', 'test_pdf_2.pdf'); 
$data = array(
    'File' => $cfile, 
    'OutputFormat' => 'jpg', 
    'ApiKey' => '******', 
    'StoreFile' => 1, 
    'Timeout'=>'1200' 
); 

$process = curl_init($url); 
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data')); 
curl_setopt($process, CURLOPT_INFILESIZE, filesize($filename_pdf)); 
curl_setopt($process, CURLOPT_INFILE, $fh_res); 
curl_setopt($process, CURLOPT_HEADER, 1); 
curl_setopt($process, CURLOPT_USERPWD, $login . ":" . $password); 
curl_setopt($process, CURLOPT_TIMEOUT, 600); 
curl_setopt($process, CURLOPT_POST, 1); 
curl_setopt($process, CURLOPT_POSTFIELDS, $data); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); 
$return = curl_exec($process); 
curl_close($process); 

小さなファイルで動作するマイコード。ファイルの取得にAPI制限がありますか?

+0

'$ return'の値は何ですか? APIが受け入れる最大ファイルサイズは? – Raptor

答えて

1

いくつかの制限があります。あなたのphp.iniファイルに値を見つけることができます。直接関係は以下のとおりです。

  1. post_max_sizeの
  2. upload_max_filesizeで
  3. max_file_uploads
  4. max_input_time

あなたはphpinfo()で値を検査し、単にそれらを変更することができます。ここで設定を変更する方法: http://php.net/manual/en/configuration.changes.php

このすべてのことは、ご使用のサーバーにのみ適用されます。別のサーバーの設定を確認することはできません。したがって、呼び出しているエンドポイントが大きなファイルをブロックする可能性があります。

+0

ありがとうございました。私のサーバーは、この設定を持っている: '' 'post_max_sizeの= 100M upload_max_filesizeで= 100M max_file_uploads = 20 max_input_time = 60' '' – Samir

+0

@Samir 'max_input_time'が短すぎるかもしれない、42メガバイトのための1分は、私が思うに、非常に高速であります。それを増やしてもう一度試してみてください。しかし、これが役立つかどうかは分かりません。 – Twinfriends

+0

これは部分的に正しいです。ファイルそのものはすでに(質問のコードで指定されているように)サーバ上にあるので、 'upload_max_filesize'と' max_file_uploads'は実際には関係ありません。 OPがcURLを使用してファイルをターゲットAPIに転送するため、cURLのタイムアウト値を変更するか、ファイル転送がタイムアウトします。また、ターゲットAPIはファイルをチャンクでアップロードすることをサポートしていますか?巨大なファイルをワンショットでアップロードしても意味がありません。 – Raptor

0

php.iniファイルの下の行をチェックインできます。

  • upload_max_filesizeで2M =
  • post_max_sizeの2M =
  • max_execution_timeに
  • file_uploads
  • max_input_time
  • のmemory_limit

upload_max_filesizeで:アップロードされたファイル

ため最大許容サイズ

post_max_sizeの各スクリプトの最大実行時間を秒単位で

file_uploads:PHPは

max_execution_timeはを受け入れるPOSTデータの最大サイズかどうかHTTPファイルをアップロードできるようにする

max_input_time: Maxiスクリプトは

は、上記ラインに対する所望の値を設定して消費することができるメモリの最大量:時間のMUM量各スクリプトは、要求データを

のmemory_limitを解析費やすことができます。これで問題は解決します。

+0

Спасибозаответ。 'Upload_max_filesize = 100M post_max_size = 100M max_execution_time = 360 file_uploads = on max_input_time = 360 memory_limit = 256M' – Samir

+0

それは今動作していますか? @Samir –

+0

この構成を保存したら、サーバーを再起動する必要があります。 @Samir –

関連する問題