Zum Ausprobieren Hier die Demo; interessanterweise erkennen sowohl Chrome als auch FF PDF als application/force-download, aber das kann ja in der Tabelle geändert werden (für die Vorschau).
Chrome auf meiner alten Kiste spielt bis zu Dateigrößen von ca 100 MB mit. Der Algorithmus ist recht einfach und portierbar in beliebige PL's. Der zu speichernde abstrakte Datentype ist nach dem bewährten Entity-Attribute-Value Muster und mit diesem Algorithmus binary safe transportfähig.
Eine schlanke Alternative übrigens zu mutlipart/form-data ;)