0

I have on html page input type text. I want paste URL, on example http://www.quicksprout.com/images/foggygoldengatebridge.jpg in this text field and click button "download" and download this file to my computer. I want want to realize this with AJAX. Maybe do you know some AJAX plugins or code that could realize downloading file from HTTP URL?

2 Answers 2

2

First MEthod

function SaveToDisk(fileURL, fileName) {
                //alert("yes i m working");
                // for non-IE
                if (!window.ActiveXObject) {
                    var save = document.createElement('a');
                    save.href = fileURL;
                    save.target = '_blank';
                    save.download = fileName || 'unknown';

                    var evt = new MouseEvent('click', {
                        'view': window,
                        'bubbles': true,
                        'cancelable': false
                    });
                    save.dispatchEvent(evt);

                    (window.URL || window.webkitURL).revokeObjectURL(save.href);
                }

                // for IE < 11
                else if ( !! window.ActiveXObject && document.execCommand)     {
                    var _window = window.open(fileURL, '_blank');
                    _window.document.close();
                    _window.document.execCommand('SaveAs', true, fileName || fileURL)
                    _window.close();
                }
           } 

Second MEthod

function downloadme(x,y){

        myTempWindow = window.open(x,'','left=10000,screenX=10000');
        myTempWindow.document.execCommand('SaveAs','null',y);
        myTempWindow.close();
    }
Sign up to request clarification or add additional context in comments.

6 Comments

Browsers are usually sophisticated enough to block anchor tags clicked with generated mouse events, be aware of this limitation.
first method works, thanks, but how in this code I can change directory to save file?
@mvoron - This is force downloading buddy.
@mvoron - Check your browser download folder.You can change it if you want.eg. link
thanks for the first method. it saves the files as "unknown" I changed it to fileURL it saved it as "http---localhost-ieltsmaster-gtreading-workbook-Activity_3_1.pdf" Any idea how to fix it?
|
1

You don't need AJAX to do that, nor would you be able to because of CORS limitations. Instead try something like this.

HTML:

<input type="text" placeholder="URL" id="url"/>
<input type="text" placeholder="Filename" id="name"/>
<a id="download">Download Link</a>

JavaScript:

var url = document.getElementById('url'),
    name = document.getElementById('name'),
    a = document.getElementById('download');

a.addEventListener('click', function () {
    this.setAttribute('src', url.value);
    this.setAttribute('download', name.value);
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.