Javascript 如何通过URL下载文件,然后获取其名称

Javascript 如何通过URL下载文件,然后获取其名称,javascript,jquery,Javascript,Jquery,这是我用JS+jQuery制作的一个用户脚本。我想知道是否有可能找到给定URL的文件名 它的形式是: http://example.org/download.php?action=download&id=1234 然后该链接下载一个文件,如“cat.jpg” 如何找到文件名的名称?我不需要在用户计算机上实际保存文件,只需要找到文件名 我愿意使用任何JS库-但我需要确保文件实际上没有保存在用户计算机中(或者可能只是保存在某个临时文件夹中)。您可以做的简单事情是发出HEAD请求,这样您就不

这是我用JS+jQuery制作的一个用户脚本。我想知道是否有可能找到给定URL的文件名

它的形式是:

http://example.org/download.php?action=download&id=1234
然后该链接下载一个文件,如“cat.jpg”

如何找到文件名的名称?我不需要在用户计算机上实际保存文件,只需要找到文件名


我愿意使用任何JS库-但我需要确保文件实际上没有保存在用户计算机中(或者可能只是保存在某个临时文件夹中)。

您可以做的简单事情是发出HEAD请求,这样您就不会下载文件,而只下载响应头。从那里您可以得到
内容配置
标题,其中包含
文件名
字段

jQuery中的类似内容:

$.ajax({
    type: "HEAD",
    url: 'http://example.org/download.php?action=download&id=1234',
    success: function(message, text, response) {
        var header = response.getResponseHeader('Content-Disposition');
        console.log(header);
    }
});
标题
变量类似于
附件;filename=“image.jpg”
。现在很容易提取文件名部分:

var filename = header.match(/filename="(.+)"/)[1]; // image.jpg

我想你是通过一个AJAX调用来实现的。这些信息将只在
响应头中提供,您可以从这家伙的帖子中的方法获得,因此您将进行AJAX调用来启动下载,获取响应头,解析它们的文件名,然后在获得所需内容后立即终止AJAX调用。除非您可以控制
download.php
文件,并且可以通过下载
id
添加只提供文件名的功能,而不下载文件,否则这是唯一的方法。非常感谢。我不知道头上有文件名。解决了我的问题。