Ich versuche, eine Datei mit SlimPHP herunterzuladen, und es scheint nicht für mich zu arbeiten.SlimPHP Anwendung wird nicht heruntergeladen Datei
Hier ist die Route, die ich gemacht habe:
$backendApp->post('/export', function ($request, $response, $args) {
$emails = $this->orginization->exportEmails();
$exportFile = $this->file->writeEmailExport($emails, 'AllEmails.csv');
$fh = fopen($exportFile, "r");
$stream = new \Slim\Http\Stream($fh);
$response = $response->withHeader('Content-Type', 'application/octet-stream')
->withHeader('Content-Description', 'File Transfer')
->withHeader('Content-Disposition', 'attachment; filename="' . basename($exportFile) . '"')
->withHeader('Content-Length', filesize($exportFile))
->withBody($stream);
return $response;
});
ich für eine Tatsache wissen, dass $ Exportdatei eine gültige PHP-Streaming-Ressource ist als der Inhalt der Datei in der Antwort zurückkommen, ich brauche nur zu triggern die Download-Funktion für Browser-Dateien für den Benutzer.
Dies sind die Header, die auf der Reaktion vorhanden sind:
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:close
Content-Description:File Transfer
Content-Disposition:attachment; filename="AllEmails.csv"
Content-Length:267
Content-Type:application/octet-stream
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Host:localhost:8080
Pragma:no-cache
X-Powered-By:PHP/5.6.15
Hat Herausragenden alles sofort, dass ich hier falsch mache? Ich kann den Inhalt der Datei auf der Registerkarte "Antwort" sehen, damit ich weiß, dass ich den Inhalt der Datei erhalte. Ich muss nur den Benutzer dazu auffordern, diese Datei herunterzuladen.
Mein Download-Datei-Code verwendet nicht das schlanke Framework und mein Code ist 3+ Jahre alt, also sollte ich vielleicht nicht kommentieren, aber ich habe mich nur gefragt - haben Sie versucht mit 'preg_replace (" ([^ \ w \ s \ d \ -_ ~,;: \ [\] \ (\].] | [\.] {2,}) ", '', $ exportFile)' und 'filter_var ($ dl_file, FILTER_SANITIZE_URL)' where ' $ dl_file' ist das Ergebnis von preg_replace, um ungültige Zeichen zu entfernen? Wenn Sie den Inhalt der Datei bekommen .... Ich bin mir nicht ganz sicher, ob das helfen würde, nur ein Gedanke. – Inkdot