Использование reCAPTCHA и enctype = & quot; multipart / form-data & quot; все вместе

У меня есть форма загрузки файла, в которой я также хочу использовать Google reCAPTCHA.

Если у меня есть следующее

<form method="post">
<input type="file" name="filename">
<div class="g-recaptcha" data-sitekey="***"></div>
<input id="submit" name="submit" type="submit" value="Submit">
</form>

Я могу использовать reCAPTCHA, но не могу загрузить файл.

Однако, если я использую:

<form method="post" enctype="multipart/form-data">
<input type="file" name="filename">
<div class="g-recaptcha" data-sitekey="***"></div>
<input id="submit" name="submit" type="submit" value="Submit">
</form>

Я могу загрузить файл успешно, и использовать reCAPTCHA при условии, что файл является текстовым файлом. Я не могу заставить его работать, если я пытаюсь загрузить файл PDF.

При загрузке текстового файла $ _POST содержит «g-recaptcha-response», но при загрузке pdf $ _POST не содержит «g-recaptcha-response».

Может кто-нибудь объяснить, что здесь происходит не так?

РЕДАКТИРОВАТЬ
Кажется, что это на самом деле проблема с размером файла.
Файлы размером более ~ 200 КБ не могут быть отправлены независимо от их формата.

В моем файле php.ini есть upload_max_filesize = 2M, поэтому я не уверен, почему 200kb слишком велики …

Какие-нибудь мысли?

РЕДАКТИРОВАТЬ 2: Больше информации

Похоже, что $ _FILE содержит код ошибки 3: UPLOAD_ERR_PARTIAL.

Я не понимаю, почему файл не может быть загружен полностью.

РЕДАКТИРОВАТЬ 3: Получение где-то

Теперь я могу загружать файлы. Кажется, мне нужно поставить reCAPTCHA до файл ввода.

<form method="post" enctype="multipart/form-data">
<div class="g-recaptcha" data-sitekey="***"></div>
<input type="file" name="filename">
<input id="submit" name="submit" type="submit" value="Submit">
</form>

Кто-нибудь может уточнить, почему это может иметь место?

Редактировать 4: Говорили слишком рано

При изменении порядка g-recaptcha-response ‘появляется в $ _POST, но я все еще получаю код ошибки 3: UPLOAD_ERR_PARTIAL.

Редактировать 5

Похоже, что файл загружается правильно, так как я вижу его в параметрах заголовка (отладчик firefox). Похоже, что php просто неправильно заполняет массив $ _FILE …

1

Решение

Я попробовал тот же код на другом сервере, и он работал нормально.

Похоже, проблема была в том, что на сервере, который я настроил, возникли проблемы с конфигурацией. На самом деле это не имеет ничего общего с взаимодействием reCAPTCHA и файла input + enctype.

Я буду обновлять, если я выясню, в чем проблема конфигурации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]