2016-12-24 1 views
0

Ich benutze mod_xsendfile, um Dateien auf einer Webseite herunterladen/anzeigen. Es funktioniert gut, ich frage mich nur, ob es irgendeinen Weg gibt, wie ich Dateinamen modifizieren kann, bevor ich sie sende?Ändern Sie den Dateinamen für die Datei heruntergeladen über mod_xsendfile

Ich vermute, ich müsste die Datei vorübergehend kopieren/umbenennen, um dies zu verwalten? Was für große Dateien nicht machbar ist (wegen Timeouts oder zumindest Wartezeiten).

Grund Ich frage ist, dass ich öffentlich freigegebene Dateien haben, die mit dem Benutzer Präfix, dass die Datei den Namen geteilt - so statt videofile.mp4 wird es username__videofile.mp4 sagen - keine große Sache, es ist nicht der Downloader gefällt doesn‘ Ich weiß schon, wer die Datei geteilt hat, es würde es nur etwas einfacher machen, wenn der Dateiname nur der ursprüngliche Dateiname wäre.

Ich vermute, eine Temp-Kopie/Umbenennen ist der einzige Weg, dies zu tun?

Antwort

3

Es ist nicht notwendig, eine temporäre Kopie oder Umbenennung vorzunehmen. Genau dies tun:

header("X-Sendfile: {$sourceFilename}"); 
header("Content-Type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=\"{$outFilename}\""); 

Set $outFilename zu welchem ​​Namen Sie wollen. Es funktioniert mit Apache 2.4.9.

+0

Danke! :) Wusste, dass ein Kopfgeld dazu beitragen würde, die Dinge zu bewegen, und es ist gut verdient. Lief wie am Schnürchen. Ich muss noch 11 Stunden warten, bis ich es vergeben kann, aber es wird dir kommen, wenn ich kann. – junkfoodjunkie

Verwandte Themen