У меня есть несколько разных страниц на моем сайте, которые позволяют пользователям загружать файлы на сервер.Они загружаются через JQuery AJAX с использованием FormData в файл php, который затем обрабатывает их и сохраняет.Вот пример используемого ajax:
$('#form1').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: 'upload.php',
type: 'post',
data: new FormData($(this)[0]),
cache: false,
contentType: false,
processData: false,
success: function(result) {
$("#result").html(result);
}
});
});
В файле upload.php у меня есть код, который проверяет, существует ли файл $_FILES["fileToUpload"]["tmp_name"]
, а затем использует move_uploaded_file()
для его сохранения.Это работало отлично в течение достаточно долгого времени, но внезапно я пришел сегодня, и все загрузки файлов по сайту просто не работают.Когда я пытаюсь var_dump($_POST)
и var_dump($_FILES)
в upload.php, они оба являются просто пустыми массивами, а это означает, что почтовый запрос фактически не отправляет данные формы?
Я пробовал это и в FireFox, и в Chrome, ирезультат тот же.Кроме того, у меня нет доступа к конфигам apache, but phpinfo()
показывает, что у меня есть file_uploads: On
, max_file_uploads: 20
, upload_max_filesize: 512M
(что намного больше, чем файл, который я пытаюсь загрузить), и upload_temp_dir: no value
,Мне интересно, может быть, это upload_temp_dir
может быть причиной проблемы, но я не знаю, было ли это так, как раньше.
Есть идеи, почему это может не сработать?
РЕДАКТИРОВАТЬ: Вот изображение моих инструментов разработчика Chrome, показывающее «полезную нагрузку» запроса.