如何从客户端下载按序列生成的csv?

问题描述 投票:0回答:2

我在页面上有一个表单,我从中调用一个构建 csv 文件的序列。我希望在序列调用后可以直接从客户端浏览器下载该文件。 c8o 解决方案是什么? 谢谢你

convertigo
2个回答
0
投票

两种可能性:

1/ 您的序列调用返回 Convertigo Server(项目或工作区内部)上生成的 CSV 文件的 URL,并且您在 Mobile Builder 中创建指向该 URL 的链接。缺点是用户必须右键单击链接才能下载文件,否则它可能会显示在浏览器中。我尝试在链接中添加“下载”属性,但没有成功

2/ 与上面相同,但链接不是直接指向 CSV 文件,而是指向 .bin 中调用的新 Convertigo 序列(Convertigo 请求者),响应将是浏览器将下载的二进制文件。该序列必须返回特定的 XML 标签:

<attachment content-type="application/csv" local-url="D:\COMMON\C8O\sc757_64\workspace\DLFile\repository\data.csv" name="data.csv" type="attachment"/>

此方法还意味着用户必须手动单击链接。

您可以在此示例项目中了解有关如何操作的更多详细信息:DLFile.car

我正在使用JS技巧来触发链接上的点击事件以自动执行文件下载:

在 Mobile Builder HTML 中:

<a class="class1567759665690" id="csvFile" href="http://localhost:18080/convertigo/projects/DLFile/.bin?__sequence=fileBin&amp;name=data.csv&amp;filePath=D%3A%5CCOMMON%5CC8O%5Csc757_64%5Cworkspace%5CDLFile%5Crepository%5Cdata.csv">data.csv</a>

在 CustomAction 组件中:

setTimeout(() => {
            document.getElementById("csvFile").click();
        }, 500);

希望有帮助。


0
投票

问题重点是通过表单触发的序列生成和下载 CSV 文件。这可以使用 JavaScript 轻松管理,方法是在服务器端创建 CSV,然后将其发送回客户端以供下载。常见的方法是使用 Blob 对象并通过按钮或链接触发下载。这让我想起了 PokeroguePokerogue Dex 的灵活性,无缝交互创造了流畅的游戏体验。

© www.soinside.com 2019 - 2024. All rights reserved.