У меня странная проблема с AjaxForm Submit. Проект, который мне нужно отлаживать, должен загрузить выбранный файл на сервер (PHP), используя Ajax, чтобы можно было отслеживать ход загрузки. Я убедился, что мой php .ini разрешает POST и загрузку размером 100+ МБ, max_execution_time 5 минут. Несмотря на все это, если я загружаю файл размером менее 9 МБ (включая 8,9 МБ), все в порядке, файл загружается. 9 МБ - это «иногда работает, иногда нет), и все, что превышает 10 МБ, гарантированно вызовет проблемы. В приведенном ниже коде (короткая версия) я добавлю комментарий к месту, которое вызывает проблемы, пожалуйста, дайте мне знать, что вы думаете об этом может быть:
HTML (опущены некоторые вещи, такие как индикатор выполнения, чтобы код было легко читать):
<form action="#" method="post" id="publisher-box-focus">
...controls for choosing a file etc....
<button type="button" onclick="Wo_GetPRecordLink()" id="publisher-
button"><span>Share</span></button>
<input type="hidden" name="hash_id" value="some_generated_id_is_here">
</form>
JS:
function Wo_GetPRecordLink() {
$('form.post').submit();
}
$('form.post').ajaxForm({
url: '<url>/myPhp.php',
beforeSend: function () {
var percentVal = '0%';
bar.width(percentVal);
percent.html(percentVal);
},
uploadProgress: function (event, position, total, percentComplete) { ***This works fine
var percentVal = percentComplete + '%';
bar.width(percentVal);
$('#progress').slideDown(200);
percent.html(percentVal);
},
success: function (data) {
if(data.status == 200) {
//My PHP does return 200 after file upload is complete but it gets incomplete POST
data thus sends no data response i'm expecting!
}
}
});
PHP:
<?php
$hash_id = '';
if (!empty($_POST['hash_id'])) {
$hash_id = $_POST['hash_id'];
}
echo "HASH IS: ".$hash_id; //*****HERE when uploading big files (and only files > 9MB
$hash_id is empty even thou Chrome Inspector shows that hidden input value is set
properly! This happens only for files bigger than 9 MB!
...
Были ли у вас проблемы такого рода? У вас есть идеи, что может их вызывать?
Сервер - это экземпляр ec2 Amazon.
PHP версия 5.5.38