我想知道是否有任何方法可以使用JavaScript实现浏览器的下载文件提示。
我的理由 - 用户将上传文件到本地文件服务器,无法从网络服务器访问。换句话说,两者都将在不同的领域!
例如,假设网站托管在www.xyz.com
上,但文件将驻留在本地文件服务器上,其地址为\\10.10.10.01\Files\file.txt
。如何使用ActiveX和VBscript上传/传输文件到本地文件服务器! (不要问: - )
所以我将本地文件路径存储在我的数据库中并将该数据绑定到网格。当用户单击该链接时,该文件将在窗口中打开(使用JavaScript)。
问题是某些文件类型,如text,jpg,pdf等在浏览器窗口中打开。如何使用客户端脚本实现content-type
或content-disposition
?这甚至可能吗?
编辑: 本地文件服务器有一个窗口的共享文件夹,文件保存在该文件夹中。
答案 0 :(得分:6)
“content-disposition:attachment”几乎是强迫它的唯一方法,必须在响应头中设置。
答案 1 :(得分:4)
如果文件托管在您的示例中的Web服务器上,您可以执行以下操作:
window.location.replace(fileUrl);
..浏览器将弄清楚如何处理该文件。这适用于大多数文件,例如.xls,.csv等,但请记住,这不是完全证明,因为用户的MIME处理程序设置将决定如何处理文件...即如果是一个.txt文件很可能只是在浏览器中显示,不会给出“文件下载”对话框。
答案 2 :(得分:4)
截至2015年8月,添加"下载"属性到您的代码可以启用您正在寻找的行为,至少在Chrome中是这样。
答案 3 :(得分:1)
您可以尝试使用type="application/octet-stream"
的普通超链接。似乎在FF中工作,但IE和Opera忽略该属性。