Save files to disk


(Leo) #1

How would you create a button to force download a pdf file from the projects resource file. (force download file rather than display the pdf in another browser tab)


(𝕄𝕚𝕔𝕙𝕒𝕖𝕝 𝔾𝕒𝕣𝕠𝕗𝕒𝕝𝕠) #2

I wouldn’t use a button. I’d use a hyperlink. That way, the visitor could right-click the link and save the file if they want.

Also, the PDF could be compressed as a .zip file. That type of file would likely be downloaded instead of shown in a browser.

If you want to make sure the PDF is downloaded, then maybe try searching Google for alternate methods…

…but I don’t usually mess with that stuff for PDF downloads. I prefer using simple Hyperlinks.


(Leo) #3

I mannaged to get click to download file to disk working but can’t seem to get it to link to the pdf in the tumult hype resource file:

// insert code for mouse click here

function Download(){
window.open(‘FILENAME.PDF’);
}

// insert code for mouse click here
function SaveToDisk(fileURL, fileName) {
// for non-IE
if (!window.ActiveXObject) {
var save = document.createElement(‘a’);
save.href = fileURL;
save.target = ‘_blank’;
save.download = fileName || ‘FILENAME.PDF’;

    var event = document.createEvent('Event');
    event.initEvent('click', true, true);
    save.dispatchEvent(event);
    (window.URL || window.webkitURL).revokeObjectURL(save.href);
}

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

}

SaveToDisk(“FILENAME.PDF”);


#4

To directly reference the PDF file, you should use:

${resourcesFolderName}/FILENAME.PDF

That will populate the ${resourcesFolderName} with the name of your document’s resources folder. Or, you could use the full URL to the PDF on your server.


#5

I would compress the file as a zip and then using (as Daniel says) the url:

${resourcesFolderName}/FILENAME.pdf.zip

or just

${resourcesFolderName}/FILENAME.zip

and placing it in a link tag or connecting it to a button with a “new function…” javascript on click as follows:

window.open("${resourcesFolderName}/FILENAME.zip", "_blank");

should enable the document to download immediately.

NOTE If you go the route of using the *download attribute then it won’t work in Safari or IE


Downloadable Content linked in Hype (PDF)