2016-03-30 2 views
2

Ich verwende window.location, um mein Bild herunterzuladen. Es ist nicht in HTML, weil ich das Bild auf dem Server erzeugen und es dann nach unten zurückzuschicken, so dass es wie folgt aussieht:Ändern Sie den Dateinamen bei der Verwendung von window.location zum Download

window.location = data.url; 

ich ein paar andere Fragen gesehen habe, aber sie schlagen die download attr, die ich don‘ t haben, weil es keine HTML gibt.

Gibt es eine Möglichkeit, den Dateinamen zu ändern?

Antwort

2

Front-end-Lösung

Das einzige, was Sie tun können, auf der Front-End-Seite ändern Sie den Code <a> Element mit download Attribut in HTML:

<a href="my_file.pdf" download="very_important_report.pdf">Download</a> 

Wenn der Benutzer auf diesen Link klickt, laden Sie den Browser Kräfte und spart die Datei mit dem angegebenen Dateinamen. Sie können mehr darüber in this post lesen. Es ist ein ziemlich neues Feature, also überprüfen Sie die browser support.

Back-End-Lösung

Wenn Sie den serverseitigen Code ändern können, dann sollten Sie content-disposition Header verwenden, wie in RFC 2183 definiert.

content-disposition: attachment; filename=very_important_report.pdf 
+0

Könnte ich so etwas wie '$ ("") .submit()' so schaffe ich das 'HTML' und lösen es über mit js? – PourMeSomeCode

+0

Leider ist das nicht möglich. Sie können aufgrund von Sicherheitsbedenken keinen Klick auf den Link ohne Benutzerinteraktion auslösen. –

+0

@PourMeSomeCode war meine Antwort in irgendeiner Weise hilfreich für Sie? –

2

Sie können den Dateinamen auf der Clientseite nicht ändern. Sie müssten das auf dem Server tun.

Sie die Content-Disposition-Header (auf der Seite Server) wie folgt gesetzt werden könnten:

Content-Disposition: attachment; filename="yourname.gif" 
Verwandte Themen