除了更改标题之外,如何在Firefox中强制另存为对话框?

2022-01-24 00:00:00 firefox save javascript

Is there a way to force a save as dialog box for www.example.com/example.pdf in ff? (i can't change the headers)

解决方案

If you can output the file to the client in base64, you could use data uris to for the download.

location.href = 'data:application/octet-stream;base64,' + appendPDFContentHere
OR
<a href="data:application/octet-stream;base64,appendPDFContentHere">pdf</a>

This will only work in non-IE browsers however but as you requested for firefox, this should work nicely.

EDIT:

Both of the examples below contain the bytes to make a PNG. If you click the first one you can view the image as you normally would in a browser. however, if you click the 2nd link, it will force you to download the image. Save it as a .png and you will see they are the exact same images. The only difference in the two links is the mime type

view image (preview shortened url) -- mime type: image/png

download image (preview shortened url) -- mime type: application/octet-stream

You asked what you put in place of appendPDFContentHere and the answer is the base64-encoded bytes that make up the PDF. I used this online base64 encoder to encode the image used in the example.

相关文章