Проблема:
У меня проблемы с надежной отправкой множества файлов через HTTP Post с одного веб-сервера на другой.
Я заметил, что успешность передачи файлов зависит от размера и количества файлов, которые я выбираю для отправки.
То, что я определяю как успешную передачу, - это если все файлы, отправленные с исходного сервера, появляются в каталоге принимающего сервера.
//sender script
$ch = curl_init();
$data = array(
'file1' => '@/var/www/html/uploadtest/largerfile.zip',
'file2' => '@/var/www/html/uploadtest/largerfile.zip',
'file3' => '@/var/www/html/uploadtest/smallerfile.zip'
);
curl_setopt($ch, CURLOPT_URL, 'http://domain.com/test/reciever.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$res = curl_exec($ch);
if(curl_exec($ch)){
print "Error: " . curl_error($ch);
}
echo $res;
//recieving script
print_r($_FILES); //outputs as blank array on failed transfer
move_uploaded_file( $_FILES["file1"]["tmp_name"], "file1.zip" );
move_uploaded_file( $_FILES["file1"]["tmp_name"], "file2.zip" );
move_uploaded_file( $_FILES["file1"]["tmp_name"], "file3.zip" );
С текущими файлами, отправляемыми через ни один из них, не прибывает в пункт назначения. Если я удаляю один largefile.zip , передача файла будет успешной.
Я ищу ответы об ошибках, печатая $ res , но я не вижу ничего, несмотря на неудачную передачу. * curl_errno * также ничего не обнаруживает.
Фон:
Ранее мне рекомендовалось использовать FTP, но веб-API, который я буду использовать, принимает только POST. Также вероятно, что файлы, которые мне нужно передать, составляют около 50 МБ.
Я также попытался изменить следующие настройки php.ini на:
- post_max_size: 100M
- upload_max_size: 60M