javascript – 是否可以触发文件下载到用户的浏览器?

是否可以强制文件下载到用户的浏览器(当然有标准的对话框提示)?由服务器触发.基本上我正在考虑将文件推送到来自服务器文件系统的浏览器.或者由于安全沙箱,这是不可能的?
如果这是不可能的,有不同的方式非常接近这个?我不想在用户同意的情况下发送文件.我可以想到两步法,首先提示用户输入数据,然后让用户点击OK按钮触发下载,但接近下载结束时,用户将获得另一个确认框(要求打开的标准下载提示)或保存).如果一步到位可能会很好.

解决方法:

使用ajax json脚本每隔5秒或10秒轮询一次服务器,
当服务器准备好文件时,回答“我有一个文件”的肯定回答,iframe移动到该文件所在的URL,然后将其作为正常下载处理.

我提供了一个小例子,说明我应该如何认为它应该有效,所以你有一些工作要做.我没有检查它的错误,它更像是一个概念验证的东西.

jQuery示例(不带json):

$.ajax('/myserverscript.php?fileready=needtoknow').done(function(data) 
    {
    if(data.indexOf("I have a file") != -1)
        {
        xdata = data.split('\n');
        data = xdata[1];
        document.getElementById('myiframe').location.href = data;
        }
    });

PHP代码

$x = filecheckingfunction();// returns false if none, returns url if there is a file
if($x !== false)
    {
    echo 'I have a file\n';
    echo $x;
    }
上一篇:mysql – 当一切都已经是UTF-8时,为什么还需要Encode :: decode(‘UTF-8’,$var)?


下一篇:Python应用程序中是否需要“cgi.escape”?