Я пытаюсь загрузить несколько файлов с помощью ajax и php. Код JavaScript и Ajax выглядит следующим образом.
$(document).on('click', '#UploadButton', function(e) { var form = new FormData(); var files = document.getElementsByClassName('receipts'); for (var i=0; i<files.length; i++) { form.append("files[receipt" + i + "]", files[i][0]); // add receipt to form } form.append('action', 'upload-receipts'); // specify action $.ajax({ url: 'handler.php', type: 'POST', data: form, cache: false, processData: false, contentType: false, success:function(data) { console.log(data); }, error: function(xhr, desc, err) { // I have some error handling logic here } }); });
Процедура обработчика PHP выглядит следующим образом.
$action = $_REQUEST['action']; switch($action) { case 'upload-receipts': $files = $_FILES['files']; $no_files = count($_FILES["files"]['name']); exit(json_encode(['size'=>$no_files])); /* for ($i = 0; $i < $no_files; $i++) { if ($_FILES["files"]["error"][$i] != 0) { move_uploaded_file($_FILES["files"]["tmp_name"][$i], 'uploads/' . $_FILES["files"]["name"][$i]); } } */ break; case 'download-file': break; default: exit(json_encode(['success'=>false, 'message'=>'InvalidActionException'])); }
Я могу успешно загрузить максимум 20 файлов .
Моя проблема в том, что я не могу загрузить более 20 файлов. Каждый раз, когда я пытаюсь загрузить более 20 файлов, загружаются только первые 20 загрузок. Выход из сценария, как показано только, указывает на
size = 20. Может кто-то поможет мне понять и понять, почему это так и решение этой проблемы.