使用JavaScript浏览器下载文件提示
我想知道是否有任何方法使用JavaScript实现浏览器的下载文件提示。使用JavaScript浏览器下载文件提示
我的理由 - 好的用户将上传文件到本地文件服务器,无法从Web服务器访问。换句话说,两者都将在不同的领域!
例如,假设网站托管在www.xyz.com
上,但文件将驻留在地址为\\10.10.10.01\Files\file.txt
的本地文件服务器上。我如何上传/传输文件到本地文件服务器...使用ActiveX和VBscript! (不要问:-)
因此,我将本地文件路径存储在数据库中,并将该数据绑定到网格。当用户点击该链接时,该文件将在窗口中打开(使用JavaScript)。
问题是某些文件类型,如文本,jpg,pdf等在浏览器窗口中打开。我如何能够使用客户端脚本实现content-type
或content-disposition
?这甚至可能吗?
编辑: 本地文件服务器有一个窗口的共享文件夹上的文件保存。
“content-disposition:attachment”几乎是强制执行的唯一方法,而且这个必须设置在响应头中。
你可以尝试使用一个普通的超链接type="application/octet-stream"
。似乎在FF中工作,但IE和Opera忽略该属性。
如果该文件在您例如Web服务器上一样,你可以这样做:
window.location.replace(fileUrl);
..和浏览器会找出与该文件做。这对大多数文件很好,比如.xls,.csv等,但请记住,这不是全面证明,因为用户的MIME处理程序设置将决定如何处理该文件...即,如果它是一个.txt文件,它很可能只是在浏览器中显示,不会被赋予一个“文件下载”对话框。
截至2015年8月,向您的代码中添加“下载”属性会启用您要查找的行为,至少在Chrome中。
什么样的服务器是你的'本地文件服务器'?一个实际的HTTP/FTP /无论服务器还是你在谈论Windows的共享文件夹(即你的意思是`\\ 10.10.10.01`而不是`// 10.10.10.01`? – Christoph 2009-04-07 19:19:19
它是一个共享文件夹在Windows&实际路径文件将是'\\ 10.10.10.01 \ Files \ file.txt' – aix 2009-04-08 10:26:09
@aix:那么你的运气不好 - 没有办法通过HTTP头发送适当的元信息 – Christoph 2009-04-08 15:48:10