从 JavaScript 创建一个可下载的附件?

Posted

技术标签:

【中文标题】从 JavaScript 创建一个可下载的附件?【英文标题】:Create a downloadable attachment from JavaScript? 【发布时间】:2012-04-25 06:20:49 【问题描述】:

我正在从数据库中获取 varbinary 数据(文件内容)以及文件名和 mime 类型。根据有多少文件,我需要在网页上显示这些文件的链接。当用户点击一个链接时,该文件应该被下载。由于链接将动态创建,我想我将不得不调用客户端函数来处理下载。但我不知道如何做到这一点。在服务器端(C#)我们可以使用 FileContentType,但是如何通过 javascript 来实现呢?另外,由于我没有物理文件,只有它的内容,我将不得不以某种方式创建这个文件。

【问题讨论】:

【参考方案1】:

您应该只创建指向动态提供内容的 C# 服务器端操作的链接。

在您的控制器中创建一个操作,该操作采用某种 ID 并返回文件。然后,您可以使用<a> 标记直接指向此操作的 URL(具有不同的 ID)。您不需要任何 Javascript。

【讨论】:

你能详细说明一下吗? 哪部分不明白? 创建指向 C# 服务器端操作的链接?我以前没有做过这样的事情,所以我可能有点难以理解它的要点。 感谢您的详细说明。但是,我的项目是一个 Web 应用程序。 @neuDev33:然后使用带有查询字符串的 ASHX(通用处理程序)。

以上是关于从 JavaScript 创建一个可下载的附件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 中提供可下载的 zip 文件

使用 .Net 为 Apple 存折创建可下载的通行证 (*.pkpass)

从 JSON 格式的字符串转换为可下载的 JSON 文件

使用 R 进行网页抓取:看不到可下载的链接

如何捕获部分金额

ExtJS 4.2 将网格数据导出到可下载的 CSV 文件