这是我想达到什么:强制文件下载
- 我都存储在一个文件Windows Azure Blob存储(或者任何不在我的web服务器上但可通过URL访问的文件)。
- 我想强制下载文件,而不是实际先下载文件到我的网络服务器上,即浏览器应该自动从这个外部URL获取文件并提示用户下载它。
可能的解决方案探微:
这里是我迄今研究(以及为什么他们将无法正常工作):
- 使用类似
FileContentResult
这里描述Returning a file to View/Download in ASP.NET MVC下载该文件。这个解决方案需要我在我的服务器上获取内容,然后从我的服务器流到浏览器。基于这个原因,这个解决方案将无法工作 - 使用HTML 5
download
属性:HTML 5download
属性将工作得很好,但问题是,虽然它是一个非常整洁的解决方案,但它并不支持所有浏览器。 - 更改文件的内容类型:我可以做的另一件事(至少对于我自己的文件)将文件的内容类型属性更改为浏览器无法理解的内容,因此将被迫下载文件。这可能适用于某些浏览器,但不是所有浏览器都能正常工作,因为IE足够聪明,可以超越内容类型,并可以看到文件内容以确定内容类型。此外,如果我不拥有这些文件,那么我将无法访问更改文件的内容类型。
简而言之,在我的控制器操作中,我应该能够指定文件的URL,并以某种方式浏览器应该强制下载文件。
这是可以完成的东西吗?如果是的话,那么我有什么想法,我可以做到这一点?
你为什么不把文件的URL放在页面上的链接上 - 浏览器会试图下载它? – Paddy
谢谢。这是我的最后手段,如果没有其他工作:)我不想这样做的原因是,它会暴露链接到我的文件。 –