gpt4 book ai didi

javascript - 如何进行本地文件下载

转载 作者:行者123 更新时间:2023-12-03 04:28:37 25 4
gpt4 key购买 nike

我希望用户下载一个本地文件(在服务器上)。用户首先通过按下按钮开始文件创建,一旦文件准备好,他应该能够通过链接或按钮下载文件。

创建文件不是问题,因为我只是向后端发送 AJAX 调用,如下所示

@POST
@Path("/createFile")
@Produces("application/text")
@Consumes("application/json")
public String createFile(String argsFromPage) {
/*File creation code here*/
return "Path of file created";
}

现在,文件已创建,我想要的只是创建一个链接,用户可以单击该链接并下载该文件。目前,该文件可以是二进制文件或 CSV 文件。我曾多次尝试但没有成功

<button onclick='create_file()'>Create</button>
function create_file() {
$.ajax({
method : "POST",
url : ".path/to/backend/service",
contentType : "application/json",
data : JSON.stringify({
param1 : val1
})
}).done(function(data) {
console.log(data);
});
}

现在创建文件后,是否可以创建下载链接?更好的是,是否可以在文件创建后立即调用下载?这应该在浏览器中完成还是在后端完成?

跟进

文件下载后,如何从服务器上删除它?有什么办法可以让文件下载完成吗?

最佳答案

要创建文件的链接,您只需在 done() 处理程序中的 DOM 中创建一个 a 元素即可。试试这个:

function create_file() {
$.ajax({
method: "POST",
url: ".path/to/backend/service",
contentType: "application/json",
data: { param1: val1 } // I assume 'val1' is declared in a higher scope?
}).done(function(path) {
$('#someContainer').append('<a href="' + path.trim() + '">Click here to download</a>');
});
}

请注意,我删除了手动 JSON.stringify 调用,因为 jQuery 会为您执行此操作。另请注意,最好从 AJAX 请求返回 JSON,因为它可以避免空格问题,尽管根据您提供的代码示例,上述内容应该仍然有效。

关于javascript - 如何进行本地文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43591702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com