使用委托点击按钮下载文件JQuery

Download file JQuery with delegated click button

本文关键字:按钮 下载 文件 JQuery      更新时间:2023-09-26

已解决:查看下面标记为"已解决"的答案。谢谢


我正试图在点击时从url指定的位置下载一个文件。我使用的是委托,但当单击按钮时,浏览器会导航到文件的位置并显示内容。我希望点击触发浏览器的下载对话框。

这是代码:

$('#left').delegate("a", "click", function(event){
    //alert("CLICKED");
    event.preventDefault();
    window.location.href = url;
});

所有关于这个问题的帖子都说要使用"event.prventDefault();",但这对我不起作用。有人有什么建议吗?

您可能需要更改服务器端(如果可以的话)。

http响应必须包含标题:

内容处置:附件;filename=fname.ext

因此浏览器知道必须打开下载对话框。否则,浏览器将尝试打开/预览它。

更多信息:

Microsoft支持


已解决:以下php脚本允许使用文件提示浏览器对话框:

header('Content-Disposition: attachment; filename="' . $filename . '"');
$fp=fopen($filepath,'r');
fpassthru($fp);
fclose($fp);

感谢deantoni把我带向正确的方向。