0

我正在尝试下载一个 word 文档,我从我的 web 服务中收到一个 base64 字符串。

在我的 html 页面上,我要求用户输入一些数据来填充单词,当用户单击按钮时,我想下载 word 文档。

按钮 --> 发送到 web 服务 --> 创建 word 文档 --> 发回 base64 --> 将此 base64 下载为 word 文档

我正在使用 Downloadify 在 IE9 中实现这一点

问题是 Downloadify 在页面加载时要求提供文件名和数据。我只有在用户在同一页面上输入数据后才能获得这些信息。

Downloadify.create('downloadify', {
    filename: filename,
    data: data,
    onComplete: function () {
        alert('Your File Has Been Saved!');
    },
    onCancel: function () {
        alert('You have cancelled the saving of this file.');
    },
    onError: function () {
        alert('You must put something in the File Contents or there will be nothing to save!');
    },
    transparent: false,
    swf: 'js/lib/Downloadify/media/downloadify.swf',
    downloadImage: 'js/lib/Downloadify/images/download.png',
    width: 100,
    height: 30,
    transparent: true,
    append: false
});

有没有办法绑定文件名和数据?或者我应该添加另一个已经获取所有数据的页面,并且只要求“保存在磁盘上”?

4

1 回答 1

0

您可能可以使用 IIFE,例如

filename: (function(){return $('#file-name-input').val();}())

我假设 Downloadify 只会在文件保存时进行查找,即使它需要提前声明。

否则,在填写并确认必要的文本框之前,不要运行生成下载按钮的 Downloadify.create()。

顺便说一句,在 Downloadify 文档中,他们提到您可以将data属性指向一个函数。一个例子是

data: function() { return "data that comprises the file contents"; }

于 2016-02-02T22:10:06.240 回答