2016-12-19 28 views
1

我想通过JavaScript在我的网站上下载资源。这是我目前拥有的代码:.PDF和.JPG资产没有用JavaScript下载?

//Creates an iFrame and adds ID to it to download 
var downloadURL = function downloadURL(url) { 
    var hiddenIFrameID = 'hiddenDownloader', 
     iframe = document.getElementById(hiddenIFrameID); 
    if (iframe === null) { 
     iframe = document.createElement('iframe'); 
     iframe.id = hiddenIFrameID; 
     iframe.style.display = 'none'; 
     document.body.appendChild(iframe); 
    } 
    iframe.src = url; 
}; 

这将创建一个iframe,如果没有出现,给人的iFrame的“hiddenIFrameID”,并将其下载,客户端的ID。目前正在下载.psd和.ai文件,但在下载.jpg或.pdf文件时无法解释该文件。有什么建议?这是我的HTML结构:

<a onclick="downloadURL('imagepath.jpg');">Download</a> 
+3

如果浏览器可以呈现它们,它可能只显示iframe中的文件。哪些赢得了PSD或AI文件发生。 – putvande

+0

您需要访问服务器端才能更改文件的标题。 – SeanKendle

+0

没有服务器,这是所有本地(文件://) –

回答

1

为了迫使一些文件(如图像,PDF等)进行下载,而不是仅仅渲染/通过浏览器显示:

  1. 要么改变服务器端。该文件应该伴随着Content-Disposition: attachment标题。这可以通过例如.htaccess文件完成。

  2. 或使用download属性的链接。例如,<a href="imagepath.jpg" download>Download</a>

    • 您甚至可以通过创建隐藏链接并调用其click()方法从脚本内启动下载。
+0

有更多的cro-bro友好吗?我没有使用服务器 –

+0

@KristinaRobinson,它是HTML5,它应该适用于所有现代浏览器。 – Sasha

+0

(@KristinaRobinson,哎呀,我看到Safari(和MSIE <13)还不支持它。对不起,我没有其他解决方案,我要等到他们发布固定版本或使用服务器端标头。 )) – Sasha