Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript下载文件_Javascript_Ajax_Download - Fatal编程技术网

如何从javascript下载文件

如何从javascript下载文件,javascript,ajax,download,Javascript,Ajax,Download,我试图使我的下载功能弹出与文件下载,它是输出的二进制文件到div当我点击链接,我如何使它,当我点击链接时,它会要求我下载它?我知道我可以用querystring和php中的header来实现,但是我可以用ajax/javascript以类似的方式实现吗?谢谢,以下是我试过的: <html> <head> <script> function Download(plan_name) { if (window.XMLHttpRequest) {

我试图使我的下载功能弹出与文件下载,它是输出的二进制文件到div当我点击链接,我如何使它,当我点击链接时,它会要求我下载它?我知道我可以用querystring和php中的header来实现,但是我可以用ajax/javascript以类似的方式实现吗?谢谢,以下是我试过的:

<html>
<head>
<script>
function Download(plan_name)
{
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            var resp = xmlhttp.responseText;
            document.getElementById("txtHint").innerHTML=resp;


            //HOW TO SHOW test.zip in a save-as dialog?
        }
    }

    xmlhttp.open("GET","fetcher.php?file=/raid0/data/naswebsite/Projects/Projects/07-003_Dawson_Mine/Flight\ Plans/Dawson_Sth_1211_AMG_700.zip");
    xmlhttp.send();
}

</script>
</head>
<body>

<a href="#" onClick="Download();">Test Download</a>
<div id="txtHint"></div>

</body>
</html>

功能下载(计划名称)
{
if(window.XMLHttpRequest)
{
xmlhttp=新的XMLHttpRequest();
}
其他的
{
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
var resp=xmlhttp.responseText;
document.getElementById(“txtHint”).innerHTML=resp;
//如何在另存为对话框中显示test.zip?
}
}
xmlhttp.open(“GET”,“fetcher.php?file=/raid0/data/naswebsite/Projects/Projects/07-003_Dawson_Mine/Flight\plan/Dawson_Sth_1211_AMG_700.zip”);
xmlhttp.send();
}

无法从AJAX请求下载文件。

相反,您可以将URL加载到一个隐藏的

中,或者像大多数人那样使用
窗口打开一个新窗口。打开
并设置其目标URL,让响应使用标题
内容处置:附件;filename=无论什么
和/或
内容类型:应用程序/强制下载