Dateien mit Safari hochladen und PHP

Wer PHP-Seiten erstellt und dort eventuell auch mal das Hochladen von Dateien zulassen möchte, erlebt unter bestimmten Umständen (die sich mir bisher noch nicht ganz erschließen), dass Safari (alle Versionen) dies nicht mehr zulässt. Er lädt und lädt, aber nichts passiert. Wer das feine Programm Little Snitch dabei im Einsatz hat, wird oben im Netzwerkmonitor sehen, dass kein Netzwerkverkehr mehr stattfindet, d.h. Safari befindet sich sozusagen im Leerlauf, obwohl er anzeigt, dass er die Datei hochlädt. Das ganze betrifft übrigens nicht nur PHP, jedes andere System ist davon auch betroffen.

Was also tun? Die Lösung ist geradezu banal! Als erste Zeile in der PHP-Seite einfach folgenden Schnipsel einfügen:

<?php header("Connection: close"); ?>

Das war’s schon. Zitat aus den header-Docs:

HTTP/1.1 defines the „close“ connection option for the sender to signal that the connection will be closed after completion of the response. For example,

Connection: close
in either the request or the response header fields indicates that the connection SHOULD NOT be considered `persistent‘ (section 8.1) after the current request/response is complete.

HTTP/1.1 applications that do not support persistent connections MUST include the „close“ connection option in every message.