Collectives on Stack Overflow. Learn more. Asked 12 years, 3 months ago. Active 5 months ago. Viewed k times. How can I prompt a download for a user when they click a link. Can this be done with jQuery, if so, how? Or should this be done with PHP or something instead? Improve this question. RedBlueThing Dodinas Dodinas 6, 22 22 gold badges 73 73 silver badges bronze badges. Add a comment. Active Oldest Votes. Improve this answer. Thanks, this is what I was looking for. I usually use "preventDefault", just left it out above because I was being lazy.
Works great, but get some MIME type errors. Curious if there are any ways to get past them? Did you solve MIME type warning? Rob Rob 2, 13 13 silver badges 17 17 bronze badges. Good to know about the 'robots. Thank you. Rob, If you need the URLs to be "private", robots. Johny T Koshy 2, 1 1 gold badge 20 20 silver badges 38 38 bronze badges. Kobi Kobi k 41 41 gold badges silver badges bronze badges.
MarkAmery that works too as other answers have indicated. That approach AFAIK doesn't give you feedback on when the download starts, when it completed and if it errored which is handy. I could add that to the answer for a "fire and forget" option. Also the [download] attribute doesn't allow for a POST or anything exotic either. Your modern example is not quite right. It will "download" whatever the server returns. For ex, if you have an authentication error, it will return the login page or whatever the server returns and not the "downloaded file" itself.
Imagine Breaker Imagine Breaker 1, 1 1 gold badge 10 10 silver badges 8 8 bronze badges. For me this would be perfect but it doesn't not work on Firefox neither. Any idea? As mentioned in caniuse. So if your links points to another domain, it hardly works anywhere for now. For it to work on Firefox, do document. You can also do link. Show 3 more comments. Tomer 1, 13 13 silver badges 14 14 bronze badges. Chrome downloads, but Firefox just shows the picture.
Saved me the time to test it only to find out it won't work. Latest Chrome Aug shows picture too because of an absurd security restriction so fail — user Chrome doesn't download for mp4 s — Nearoo. Show 2 more comments. Mark Amery k 65 65 gold badges silver badges bronze badges. Laura Chesches Laura Chesches 2, 17 17 silver badges 15 15 bronze badges. Also the Edge 13 implementations is buggy because the name of the file is ignored and instead you get a file with an id as the name.
In my opinion, this is the correct answer to the question. The other answers make sense if you have to support older browsers and need a workaround. I dont' think is needed. It's already setting the 'src:url' in the creation step. I had to used "window. Maybe because I wanted to download 12 things at the same time? Does not do anything in Chrome — jjxtra. This is base javascript function, so can be used in any platform where backend is in Javascript window. Rohit Parte Rohit Parte 2, 21 21 silver badges 17 17 bronze badges.
This is probably the easiest solution if you can set the contentType yourself. I use it as: window. If admin doesn't want to show the URL to the user than? Works on Chrome, Firefox and IE8 and above. Ismail Farooq 5, 1 1 gold badge 23 23 silver badges 43 43 bronze badges. EL missaoui habib EL missaoui habib 1, 1 1 gold badge 14 14 silver badges 24 24 bronze badges. This also works if you don't append the link to the DOM.
Unless headers returned from the server indicate to do otherwise, this will simply navigate to url , not download from it. Aaron Lelevier Aaron Lelevier Where is the download code? You're just adding an iframe — DevAB. This does not work if your filePath has a querystring since submitting a form will overwrite the querystring in the action attribute.
This also closes the websockets. This looks like a really complicated way to set window. Just window. Regardless of whether there's a downside to this solution, per se, you haven't provided any upside to using this over a link. And there is a downside: you can't use the download attribute this way to tell the browser that you want a download regardless of what headers the server returns, which you can do with an a element.
I ended up using the below snippet and it works in most browsers, not tested in IE though. Abk Abk 1, 1 1 gold badge 19 19 silver badges 28 28 bronze badges. What's the point of using MouseEvent here instead of always using click? And why append the link to the document before clicking it? Maybe this has advantages over the simpler approach shown in stackoverflow.
It's been a while I posted this answer. I can't remember if there's any reason behind those unnecessary lines of code. Maciej Krawczyk Maciej Krawczyk 11k 5 5 gold badges 32 32 silver badges 45 45 bronze badges. La masse La masse 1, 1 1 gold badge 8 8 silver badges 24 24 bronze badges. How is this an improvement? It appears to simply be a more complicated way of doing the same thing.
Urmas Repinski Urmas Repinski 1 1 silver badge 6 6 bronze badges. File is getting downloaded but its always corrupt. Approach: Hey geek! The constant emerging technologies in the world of web development always keeps the excitement for this subject through the roof. But before you tackle the big projects, we suggest you start by learning the basics.
Now at it's lowest price ever! Create an anchor tag link on the normal HTML page. We want to download a file when we click on an anchor tag link Download this file. Implementation and Folder structure is as shown below. Skip to content. Change Language. Related Articles. Table of Contents.
0コメント