Wie wird der Download-Dateiname gewählt und ist es eine Möglichkeit, es zu ändern?

StackOverflow https://stackoverflow.com/questions/894298

  •  23-08-2019
  •  | 
  •  

Frage

Ich habe einen Link zu einer Datei nicht auf meinem Server:

<a href="history.nasa.gov/monograph15b.pdf">NASA</a>

Ich möchte es so machen, dass, wenn ein Besucher klickt auf den Link zum Download, der Name, der für die PDF-Pop-up würde wäre NASA.pdf und nicht monograph15b.pdf.

Ist das möglich in jeder Sprache?

War es hilfreich?

Lösung

Wenn Sie nicht die Datei selbst hosten werden, können Sie in der Lage sein, in dem Dateiinhalt zu lesen und dann diese Inhalte direkt an den Browser mit den entsprechenden Header senden.

Beachten Sie, dass diese langsam sein, weil Sie wieder das Herunterladen jedes Mal die Datei von der NASA werde Ihre PHP-Seite ausgeführt wird.

<?php
$filename = "http://history.nasa.gov/monograph15b.pdf";
$outputfilename = "NASA.pdf";

header("Content-Type:  application/pdf");
header("Content-Disposition:  attachment; filename=\"" . basename($outputfilename) . "\";" );
header("Content-Transfer-Encoding:  binary");
readfile("$filename");
?>

Dieser Ansatz erfordert auch, dass PHP so konfiguriert werden, dass fopen () verarbeiten kann eine Datei über HTTP zu lesen.

Andere Tipps

Der einzige Weg, um wirklich zu tun ist, um zuerst die betreffende Datei auf den eigenen Server herunterladen, nennen Sie es, wie Sie wollen, und es dann bis zu Ihrem Endkunden dienen zurück.

Schauen Sie in den HTTP-Header Content-Disposition Header, es ermöglicht es Ihnen, geben Sie die Dateinamen an.

Sie müssen jede serverseitige Technologien wie ASP.NET verwenden. Wo in Sie auf der Seite in einer Schaltfläche setzen. Wenn die Schaltfläche geklickt wird es durchführen wird folgende Aufgaben.

1) Response.Clear ();.

.

2) Response.AddHeader ( "Content-Disposition", "attachment; filename = Nasa.pdf");

.

3) Response.ContentType = "application / octet-stream";

4) Response.WriteFile (context.Server.MapPath ( "history.nasa.gov/monograph15b.pdf")). // Sie müssen den realtively richtigen Pfad für Ihre Anwendung eingestellt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top