-1

当我尝试发送大 PDF 文件(42 mb)时,我遇到了问题。获取文件有 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 限制吗?

4

2 回答 2

2

有一些限制。在您的 php.ini 文件中,您可以找到这些值。直接相关的有:

  1. post_max_size
  2. 上传最大文件大小
  3. max_file_uploads
  4. 最大输入时间

您可以检查这些值phpinfo()并简单地更改它们。这里是如何更改您的配置: http: //php.net/manual/en/configuration.changes.php

整个事情肯定只适用于您的服务器。您无法检查另一台服务器的设置,因此您调用的端点完全有可能阻止大文件。

于 2017-07-31T09:33:33.540 回答
0

您可以签入您的php.ini文件以获取以下行。

  • upload_max_filesize = 2M
  • post_max_size = 2M
  • max_execution_time
  • 文件上传
  • 最大输入时间
  • 内存限制

upload_max_filesize :上传文件的最大允许大小

post_max_size : PHP 将接受的最大 POST 数据大小

max_execution_time :每个脚本的最大执行时间,以秒为单位

file_uploads :是否允许 HTTP 文件上传

max_input_time :每个脚本可能花费在解析请求数据上的最长时间

memory_limit :脚本可能消耗的最大内存量

为上述行设置所需的值。这将解决您的问题。

于 2017-07-31T09:35:03.530 回答