Hin und wieder erreichen mich Einsendungen aus einem CF7-Kontaktformular per E-Mail mit defekten Bilddateien im Anhang.
Die hochgeladene Datei ist angehängt, aber ihre Größe beträgt genau 1 Byte, sodass sie völlig unbrauchbar ist.
Was dies schwierig macht, ist Folgendes:
- Es passiert nicht immer
- Es scheint meistens (oder nur) bei Bildern mit dem -Erweiterung[/b]
Code: Select all
.jpeg - Ich habe das gleiche Problem nicht bemerkt (oder es ist äußerst selten) mit .jpg, .png oder .pdf
Das Datei-Upload-Feld ist wie folgt konfiguriert dies:
Code: Select all
[file artwork-photo filetypes:jpg|jpeg|png|pdf|heic|webp limit:20mb class:form-control]
Der Server läuft mit PHP 8.3.28 (FPM) und hat die folgenden relevanten Einstellungen:
- : 512M
Code: Select all
memory_limit - : 900
Code: Select all
max_execution_time - : 900
Code: Select all
max_input_time - : 256M
Code: Select all
post_max_size - : 256M
Code: Select all
upload_max_filesize - : on
Code: Select all
opcache.enable
Umgebung
- Contact Form 7-Version: 6.1.4
- WordPress-Version: 6.9
- Wie kann ich das richtig debuggen?
- Gibt es eine Möglichkeit, den Upload-Vorgang zu protokollieren CF7?
- Kann ich überprüfen, ob die Datei bereits auf PHP-Upload-Ebene beschädigt ist ()?
Code: Select all
$_FILES
- Könnte dies speziell mit .jpeg-Dateien zusammenhängen?
- Nichtübereinstimmung des MIME-Typs?
- Probleme bei der clientseitigen Codierung?
- EXIF / progressiv JPEGs?
- Gibt es bekannte CF7- oder PHP-FPM-Randfälle, die zu einer hochgeladenen 1-Byte-Datei führen könnten?
- Empfohlene Hooks oder Filter in Contact Form 7, um die Datei vor abzufangen und zu validieren, bevor sie verarbeitet wird, oder per E-Mail gesendet?
Vielen Dank im Voraus!
Mobile version